Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

ClusterServer Class Reference

Inheritance diagram for ClusterServer:

IEventListener List of all members.

Public Member Functions

 this (InternetAddress bind, int threads, ILogger logger=null)
void enroll (ILogger logger)
void addCacheLoader (IPayload loader, bool enroll=false)
void start ()
void setCache (ClusterCache cache)
ClusterCache getCache ()
void setQueue (ClusterQueue queue)
char[] getProtocol ()
void notify (IEvent event, IPayload payload)
char[] toString ()
ServerSocket createSocket (InternetAddress bind, int backlog)
ServerThread createThread (ServerSocket socket)
void service (ServerThread st, IConduit conduit)

Private Attributes

ClusterCache cache
ClusterQueue queue
Cluster cluster
IChannel channel
RollCall rollcall
CacheServer taskServer

Detailed Description

Extends the AbstractServer to glue cluster-server support together. Note that there may only be one server running for any given host name. This is to make it easier to manage the server(s) via one or more http clients. If you require more than one server per machine, virtual hosting will need to be provided.

Definition at line 74 of file ClusterServer.d.


Member Function Documentation

this InternetAddress  bind,
int  threads,
ILogger  logger = null
[inline]
 

Construct this server with the requisite attributes. The 'bind' address is the local address we'll be listening on, 'threads' represents the number of socket-accept threads, and backlog is the number of "simultaneous" connection requests that a socket layer will buffer on our behalf.

We also set up a listener for client discovery-requests, and lastly, we tell active clients that we're available for work. Clients should be listening on the appropriate channel for an instance of the RollCall payload.

Definition at line 98 of file ClusterServer.d.

References Cluster, Cluster::createChannel(), Cluster::createConsumer(), enroll(), ILogger, RollCall, rollcall, taskServer, and version.

void enroll ILogger  logger  )  [inline]
 

Definition at line 130 of file ClusterServer.d.

Referenced by this().

void addCacheLoader IPayload  loader,
bool  enroll = false
[inline]
 

Definition at line 138 of file ClusterServer.d.

References IPickle::getGuid(), and Cluster::getLogger().

void start  )  [inline]
 

Start this server

Definition at line 154 of file ClusterServer.d.

References Cluster::broadcast(), ClusterCache, queue, rollcall, taskServer, and version.

void setCache ClusterCache  cache  )  [inline]
 

Use this before starting the server

Definition at line 181 of file ClusterServer.d.

ClusterCache getCache  )  [inline]
 

Definition at line 190 of file ClusterServer.d.

void setQueue ClusterQueue  queue  )  [inline]
 

Use this before starting the server

Definition at line 201 of file ClusterServer.d.

char [] getProtocol  )  [inline]
 

Return the protocol in use.

Definition at line 212 of file ClusterServer.d.

Referenced by toString().

void notify IEvent  event,
IPayload  payload
[inline]
 

Interface method that's invoked when a client is making discovery requests. We just send back our identity in a reply.

Reimplemented from IEventListener.

Definition at line 225 of file ClusterServer.d.

References Cluster::broadcast(), RollCall::request, and rollcall.

char [] toString  )  [inline]
 

Return a text string identifying this server

Definition at line 240 of file ClusterServer.d.

References getProtocol().

ServerSocket createSocket InternetAddress  bind,
int  backlog
[inline]
 

Create a ServerSocket instance.

Definition at line 251 of file ClusterServer.d.

References ServerSocket.

ServerThread createThread ServerSocket  socket  )  [inline]
 

Create a ServerThread instance. This can be overridden to create other thread-types, perhaps with additional thread- level data attached.

Definition at line 264 of file ClusterServer.d.

References ServerThread.

void service ServerThread  st,
IConduit  conduit
[inline]
 

Factory method for servicing a request. We just create a new ClusterThread to handle requests from the client. The thread does not exit until the socket connection is broken by the client, or some other exception occurs.

Definition at line 278 of file ClusterServer.d.

References ClusterThread, queue, and thread.


Member Data Documentation

ClusterCache cache [private]
 

Definition at line 76 of file ClusterServer.d.

ClusterQueue queue [private]
 

Definition at line 77 of file ClusterServer.d.

Referenced by service(), and start().

Cluster cluster [private]
 

Definition at line 78 of file ClusterServer.d.

IChannel channel [private]
 

Definition at line 79 of file ClusterServer.d.

RollCall rollcall [private]
 

Definition at line 80 of file ClusterServer.d.

Referenced by notify(), start(), and this().

CacheServer taskServer [private]
 

Definition at line 81 of file ClusterServer.d.

Referenced by start(), and this().


The documentation for this class was generated from the following file:
Generated on Sat Apr 9 20:11:36 2005 for Mango by doxygen 1.3.6