Danube Core

/images/danube/core1.png

The core part is designed to be as simple as possible. It comprises of two interfaces: Connection and ConnectionHandler. Connection represents connection from other computers or services. Input and output streams, sockets or any other decorations are available through it (see adapt of Adaptable class). ConnectionHandler is a class that knows what to do with the supplied Connection. SocketConnection, for instance, is a simple extension of Connection that introduces a socket into the picture - thus enabling the handler to interrogate it in order to gather information about the client or the state of the connection.

Most of server's components are just implementations of ConnectionHandler. Examples are: MVCConnectionHandler (more will be explained later), Selector or HTTPServerConnectionHandler, ErrorConnectionHandler and ReadOnlyFileConnectionHandler.