Package AccessGrid :: Module TextServiceAsynch :: Class TextService
[show private | hide private]
[frames | no frames]

Class TextService


The TextService provides a secure event layer. This might be more scalable as a secure RTP or other UDP solution, but for now we use TCP. In the TCP case the TextService is the Server, GSI is our secure version.


Method Summary
  __init__(self, server_address)
  AddChannel(self, channelId, authCallback)
This adds a new channel to the Text Service.
  CloseConnection(self, connObj)
  Distribute(self, channelId, data)
Distribute sends the data to all connections.
  EnqueueEOF(self, conn)
  EnqueueEvent(self, event, conn)
  EnqueueQuit(self)
  findConnectionChannel(self, id)
  GetChannel(self, id)
  GetLocation(self)
GetLocation returns the (host,port) for this service.
  HandleEOF(self, connObj)
Handle an EOF on a connection.
  HandleEvent(self, event, connObj)
Handle an incoming event.
  HandleEventForDisconnectedChannel(self, event, connObj)
We've received an event for a connection which hasn't yet been connected to a channel.
  listenCallback(self, arg, handle, result)
  QueueHandler(self)
Thread main routine for event queue handling.
  RegisterCallback(self, channelId, eventType, callback)
  RegisterChannelCallback(self, channelId, callback)
Register a callback for all events on this channel.
  registerForListen(self)
  RegisterObject(self, channel, object)
RegisterObject is short hand for registering multiple callbacks on the same object.
  RemoveChannel(self, channelId)
This removes a channel from the Text Service.
  start(self)
Start.
  Stop(self)
Stop the text service.

Method Details

AddChannel(self, channelId, authCallback=None)

This adds a new channel to the Text Service.

Distribute(self, channelId, data)

Distribute sends the data to all connections.

GetLocation(self)

GetLocation returns the (host,port) for this service.

HandleEOF(self, connObj)

Handle an EOF on a connection.

If this connection doesn't yet have a channel assignment, we can just delete it from our list of all channels.

If it does have a channel assignment, remove from there then delete from all-channels.

HandleEvent(self, event, connObj)

Handle an incoming event.

This is executed in the message handling thread after an event has been received by the async reader.

Exactly what happens with this event depends on whether the connection object has been connected to a channel or not.

If it has not, the only events that will be processed are Connect and Disconnect.

If it has, the event is passed along to the TextChannel for processing.

HandleEventForDisconnectedChannel(self, event, connObj)

We've received an event for a connection which hasn't yet been connected to a channel.

Pass the event to the channel to allow it to decide whether to allow the connection or not. If it allows it, add the connection to the channel. If not, close the channel.

QueueHandler(self)

Thread main routine for event queue handling.

RegisterChannelCallback(self, channelId, callback)

Register a callback for all events on this channel.

RegisterObject(self, channel, object)

RegisterObject is short hand for registering multiple callbacks on the same object. The object being registered has to define a table named callbacks that has event types as keys, and self.methods as values. Then these are automatically registered.

RemoveChannel(self, channelId)

This removes a channel from the Text Service.

start(self)

Start. Initialize the asynch io on accept.

Stop(self)

Stop the text service.

Close our listener socket and all the active connections; this should clear out any lingering state.


Generated by Epydoc 2.1 on Thu Apr 14 16:39:31 2005 http://epydoc.sf.net