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


Reply via email to