Interface ConnectionServer<T>
-
- All Known Subinterfaces:
NetConnectionServer
,NetConnectionServer
,NetSharedConnectionServer
,SharedConnectionServer<T>
- All Known Implementing Classes:
AltingConnectionServer
,AltingConnectionServerImpl
,NetAltingConnectionServer
,SharedConnectionServerImpl
public interface ConnectionServer<T>
This interface should be implemented by classes that wish to act as connection servers and to accept requests from
ConnectionClient
objects.The server can call
request()
to allow a client to establish a connection to the server and to obtain the client's initial request. This should block until a client establishes a connection.Once a request has been received, the server should reply to the client. If the server wants to close the connection then the server should call
replyAndClose(Object)
or alternativelyreply(Object, boolean)
with theboolean
set totrue
. If the server wants to keep the connection open, then it should callreply(Object)
or alternativelyreply(Object, boolean)
with theboolean
set tofalse
. Thereply(Object, boolean)
method is provided for convenience in closing connections programatically.- Author:
- Quickstone Technologies Limited
-
-
Field Summary
Fields Modifier and Type Field Description static StandardChannelFactory
FACTORY
The factory for creating channels within servers.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
reply(T data)
Sends some data back to the client after a request has been received but keeps the connection open.void
reply(T data, boolean close)
Sends some data back to the client after a request has been received.void
replyAndClose(T data)
Sends some data back to the client and closes the connection.T
request()
Receives a request from a client.
-
-
-
Field Detail
-
FACTORY
static final StandardChannelFactory FACTORY
The factory for creating channels within servers.
-
-
Method Detail
-
request
T request() throws IllegalStateException
Receives a request from a client. This will block until the client calls its
request(Object)
method. Implementations may make this ALTable.After this method has returned, the server should call one of the reply methods. Performing any external process synchronization between these method calls could be potentially hazardous and could lead to deadlock.
- Returns:
- the
Object
sent by the client. - Throws:
IllegalStateException
-
reply
void reply(T data) throws IllegalStateException
Sends some data back to the client after a request has been received but keeps the connection open. After calling this method, the server should call
recieve()
to receive a further request.A call to this method is equivalent to a call to
reply(Object, boolean)
with the boolean set tofalse
.- Parameters:
data
- the data to send to the client.- Throws:
IllegalStateException
-
reply
void reply(T data, boolean close)
Sends some data back to the client after a request has been received. The
boolean
close parameter indicates whether the connection should be closed after this reply has been sent.This method should not block.
- Parameters:
data
- the data to send back to client.close
-boolean
that should betrue
iff the connection should be dropped after the reply has been sent.
-
replyAndClose
void replyAndClose(T data) throws IllegalStateException
Sends some data back to the client and closes the connection.
A call to this method is equivalent to a call to
reply(Object, boolean)
with the boolean set totrue
.- Parameters:
data
- the data to send back to client.- Throws:
IllegalStateException
-
-