You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Nils Kaiser <Ni...@gmx.de> on 2002/02/22 16:23:39 UTC

asynchronous connection manager

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?
}