hi,
for my project I'll build an asynchronous connection manager. Are there
default ways of registering event listeners in avalon? or any event base
classes? here are the interface models I used in a previous project
(throws left out), would be great if anyone can have a look about it -
how to implement it in avalon and so on... I will supply my work to the
avalon cornerstone project:
interface EventListener
{
handleEvent (Event e);
}
interface Acceptor
{
public void bind(int port);
public void bind(int port, int backlog);
public void bind(InetAddress address, int port);
public void bind(InetAddress address, int port, int backlog);
public void unbind();
// raises bound, unbound, accept (passes connection), accepterror
events
addEventListener(EventListener eventlistener);
removeEventListener(EventListener eventlistener);
// more avalon way to manage events?
}
interface Connector
{
public void connect(InetAddress address, int port);
// raises connect (passes connection), connecterror events
addEventListener(EventListener eventlistener);
removeEventListener(EventListener eventlistener);
// more avalon way to manage events?
}
interface AsynchronousConnectionManager
{
// more avalon like way of retriving connector instances? this is
simple because connector is a nested class
public void createConnector();
public void addConnector(Connector connector);
public Enumeration getConnectors();
public void removeConnector(Connector connector);
// should I use connect / disconnect instead?? i find this approach
more appropriate
// more avalon like way of retriving acceptor instances? this is
simple because connector is a nested class
public void createAcceptor();
public void addAcceptor(Acceptor acceptor);
public Enumeration getAcceptors();
public void removeAcceptor(Acceptor acceptor);
// should I use connect / disconnect instead?? i find this approach
more appropriate
public void start();
public void stop();
public boolean isRunning();
public boolean isStopping();
// will disappear in avalon impl... compose/dispose instead?
}
interface AsynchronousConnection
{
send(byte[] data);
disconnect();
Acceptor getAcceptor();
Connector getConnector();
// raises connect, read, disconnect event
addEventListener(EventListener eventlistener);
removeEventListener(EventListener eventlistener);
// more avalon way to manage events?
}