Holger's Java API

## Uses of Interface
com.antelmann.net.NetConnection

Packages that use NetConnection
com.antelmann.db.remote: This package contains classes that add remote capacities to the database concept of the super package.
com.antelmann.net: The classes in this package are designed to provide convenient access to Internet related functionality.
com.antelmann.util.logging: This package contains classes that implement a custom logging for this framework - separate from java.util.logging.

Uses of NetConnection in com.antelmann.db.remote

Methods in com.antelmann.db.remote with parameters of type NetConnection
`void` `RemoteDatabaseChangeHandler.connectionLost(NetConnection connection)`
`void` `ChangeNotificationServer.connectionLost(NetConnection connection)`
`void` `RemoteDatabaseChangeHandler.handleMessage(Object message, NetConnection connection)`
`void` `ChangeNotificationServer.handleMessage(Object message, NetConnection connection)`
`void` `RemoteDatabaseChangeHandler.setRemoteFilter(NetConnection con, RemoteDBChangeFilter filter)` allows to set a remote filter on the given connection, so that not every change is delivered by the server to this connection

Constructors in com.antelmann.db.remote with parameters of type NetConnection
`ChangeNotificationClient(NetConnection con, Database<?> db, boolean deliverChanges)` starts a client daemon thread that listens to changes; if `deliverChanges` is true, this client also propagates changes from the database to the server using a notifier.
`RemoteDBChangeNotifier(NetConnection con, Filter<? super DBUpdateEvent> filter)`

Uses of NetConnection in com.antelmann.net

Classes in com.antelmann.net that implement NetConnection
`class` `SecureConnection` SecureConnection is a small wrapper for NetConnection objects, which provides automatic encoding/decoding of messages.
`class` `SocketConnection` A SocketConnection provides simplified access to a remote process through a Socket connection.
`class` `SSLSocketConnection` An SSLSocketConnection provides simplified access to a remote process through an SSLSocket connection.

Methods in com.antelmann.net that return NetConnection
`NetConnection` `NetConnectionServer.DefaultDispatcher.createConnection(Socket socket)` simply returns SocketConnection.createServerConnection(socket, handshake)
`NetConnection` `JMessenger.createConnection(Socket socket)` called internally to establish a connection
`NetConnection` `ConnectionDispatcher.createConnection(Socket socket)` produces a NetConnection based on the given socket.
`NetConnection` `MessageDelegator.getConnection()`
`NetConnection[]` `ChatServer.getConnections()`
`NetConnection` `SecureConnection.getEmbeddedConnection()`
`NetConnection[]` `NetConnectionServer.getNetConnections()` returns a snapshot of the currently known connections
`static NetConnection` `NetConnectionServer.waitForConnection(int port, Handshake handshake, int timeout)` listens for a single connection to be made and returns a NetConnection if the connection made matches the signature

Methods in com.antelmann.net that return types with arguments of type NetConnection
`Map<NetConnection,MessageDelegator>` `NetConnectionServer.getConnectionMap()` returns an unmodifiable view of all NetConnections and their MessageDelegators that have been created with this server (minus those that have been removed through `removeInactiveConnections()`)

Methods in com.antelmann.net with parameters of type NetConnection
`void` `SimpleHandshake.clientHandshake(NetConnection con)`
`void` `Handshake.clientHandshake(NetConnection con)` performs a handshake for the given socket on behalf of a client
`void` `RemoteNetInterfaceProtocol.connectionLost(NetConnection con)`
`void` `NetConnectionHandler.connectionLost(NetConnection connection)` called when a connection caused an IOException during reading or writing; the connection may not have been closed at this point.
`void` `NetConnectionAdapter.connectionLost(NetConnection connection)` closes the connection and ignores possible IOExceptions
`void` `JMessenger.connectionLost(NetConnection connection)` called internally to handle lost connections
`void` `JChat.connectionLost(NetConnection con)`
`void` `ChatServer.connectionLost(NetConnection con)`
`MessageDelegator` `NetConnectionServer.DefaultDispatcher.createDispatcher(NetConnection con, NetConnectionHandler handler)`
`MessageDelegator` `JMessenger.createDispatcher(NetConnection con, NetConnectionHandler handler)`
`MessageDelegator` `ConnectionDispatcher.createDispatcher(NetConnection con, NetConnectionHandler handler)` responsible for creating the delegator based on the created connection and the associated handler
`MessageDelegator` `ChatServer.createDispatcher(NetConnection con, NetConnectionHandler handler)`
`NetConnectionHandler` `NetConnectionServer.DefaultDispatcher.createHandler(NetConnection con)` uses the same handler (given in the constructor) for all connections
`NetConnectionHandler` `JMessenger.createHandler(NetConnection con)`
`NetConnectionHandler` `ConnectionDispatcher.createHandler(NetConnection con)` produces a NetConnectionHandler which will be started in a new Thread (created by the NetConnectionServer's ThreadFactory) to handle the given NetConnection and listens to messages.
`NetConnectionHandler` `ChatServer.createHandler(NetConnection con)`
`static Object` `RemoteNetInterfaceProtocol.createRemoteObject(NetConnection con, Class<?>... interfaces)`
`static Object` `RemoteNetInterfaceProtocol.createRemoteObject(NetConnection con, ClassLoader cl, Class<?>... interfaces)`
`static Object` `RemoteNetInterfaceProtocol.createRemoteObject(NetConnection con, Logger logger, Class<?>... interfaces)`
`static Object` `RemoteNetInterfaceProtocol.createRemoteObject(NetConnection con, Logger logger, ClassLoader cl, Class<?>... interfaces)` creates and returns a client object that will be handled remotely through the given NetConnection.
`void` `RemoteNetInterfaceProtocol.handleMessage(Object message, NetConnection con)`
`void` `NetConnectionHandler.handleMessage(Object message, NetConnection connection)` called when a message is received by the given NetConnection object
`void` `NetConnectionAdapter.handleMessage(Object message, NetConnection connection)`
`void` `JMessenger.handleMessage(Object message, NetConnection con)` called internally to handle messages
`void` `JChat.handleMessage(Object message, NetConnection con)`
`void` `ChatServer.handleMessage(Object message, NetConnection con)`
`static void` `RemoteNetInterfaceProtocol.sendInfoMessage(NetConnection con, Object msg)` allows to send an arbitrary message (even just a ping) from one end to another
`void` `SimpleHandshake.serverHandshake(NetConnection con)`
`void` `Handshake.serverHandshake(NetConnection con)` performs a handshake for the given socket on behalf of a server

Constructors in com.antelmann.net with parameters of type NetConnection
`MessageDelegator(NetConnection con, NetConnectionHandler handler)`
`MessageDelegator(NetConnection con, NetConnectionHandler handler, Logger logger)` if logger is not null, it will be used to log established and closed connections
`SecureConnection(NetConnection con, SynchronousKey key)`

Uses of NetConnection in com.antelmann.util.logging

Methods in com.antelmann.util.logging with parameters of type NetConnection
`void` `SocketLogListener.connectionLost(NetConnection con)`
`void` `LogNetReceiver.connectionLost(NetConnection con)` connection is closed after logging an entry with `Level.END`
`void` `LogNetPropagator.connectionLost(NetConnection con)` simply removes inactive connections from its server's list
`void` `SocketLogListener.handleMessage(Object message, NetConnection con)`
`void` `LogNetReceiver.handleMessage(Object msg, NetConnection con)` if msg is a serialized LogEntry, it will be logged to the logger; everything except a serialized LogEntry is ignored (including exceptions).
`void` `LogNetPropagator.handleMessage(Object msg, NetConnection con)` simply responds with a 'message received' object to enable connection verification and closes the connection on IOException

(c) Holger Antelmann since 2001- all rights reserved (contact: info@antelmann.com)
see www.antelmann.com/developer for further details and available downloads