package com.jsonde.client.network;
import com.jsonde.api.Message;
import com.jsonde.api.MessageListener;
import com.jsonde.api.function.FunctionRequest;
import com.jsonde.api.function.FunctionResponse;
public interface NetworkClient {
void start() throws NetworkClientException;
void stop() throws NetworkClientException;
void sendMessage(Message message);
//FunctionResponse invokeFunction(final FunctionRequest functionRequest) throws InterruptedException;
<T extends FunctionResponse> T invokeFunction(final FunctionRequest<T> functionRequest) throws InterruptedException;
void addMessageListener(MessageListener messageListener);
void removeMessageListener(MessageListener messageListener);
}