package com.jds.nio;
import com.jds.nio.core.NioHandler;
import com.jds.nio.core.NioService;
import com.jds.nio.core.Protocol;
import java.net.InetSocketAddress;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.SocketChannel;
/**
* Author: VISTALL
* Company: J Develop Station
* Date: 02.09.2009
* Time: 18:03:45
*/
public class NioConnector extends NioService
{
private NioSession _session;
public NioConnector(NioHandler handler, Protocol protocol)
{
super(handler, protocol);
}
public void connect(InetSocketAddress address) throws Exception
{
//try
//{
if (_session != null)
{
_session.clear();
}
_selector = Selector.open();
SocketChannel channel = SocketChannel.open(address);
channel.configureBlocking(false);
channel.register(_selector, SelectionKey.OP_CONNECT);
_session = new NioSession(channel, channel.socket(), this);
fireServiceActivated();
fireSessionCreate(_session);
/**}
catch (Throwable e)
{
fireServiceDeactivated();
fireCatchException(e);
} */
}
public NioSession getSession()
{
return _session;
}
}