package com.eactive.eai.adapter.socket.service;

import java.io.IOException;
import java.net.Socket;

import com.eactive.eai.adapter.socket.config.ConfigurationContext;

public interface SocketService {

	/**
	* Stop the service
	*/
	public void shutdown();

	public Socket getCurrentSocket();

	public boolean connect();

	public void disconnect();

	public ConfigurationContext getContext();

	public void setControl(Object control);

	public void notifyMessage();

	public boolean idle(long timeout);

	public int getCurrentState();

	public boolean isConnected() throws IOException;

	public boolean isActive();

	public void checkActivity();

	public String getRemoteIPAddress();

	public void setLastActivity();
    
    public long getFirstActivity();
    
    public long getLastActivity();
}