Package beepy :: Package core :: Module session :: Class Session
[show private | hide private]
[frames | no frames]

Class Session

Known Subclasses:
Initiator, Listener, SASLSession, TLSSession

A Session is the main entity relating to a BEEP peer connection. A session represents a single connection to a remote peer and can contain numerous channels for processing.
Method Summary
  __init__(self)
Create a new Session.
  channelClosedError(self, channelnum, code, desc)
What to do if a channel close fails
  channelClosedSuccess(self, channelnum)
Override this method to receive notification of channel closure
  channelStarted(self, channelnum, uri)
Action to take when a positive RPY to a channel start message is received.
  channelStartedError(self, channelnum)
Action to take when a negative RPY to a channel start message is received.
  close(self)
  closeAllChannels(self)
Attempts to close all channels on this Session
  closeChannel(self, channelnum)
requestCloseChannel() attempts to close a channel.
  createChannel(self, channelnum, profile)
Creates a new channel with the given channel number and binds the given profile to it for processing.
  createChannelFromURIList(self, channelnum, uriList, profileInit)
Attempts to create a channel given a list of possible profiles to bind to the channel.
  createChannelZero(self)
Create the Channel 0 for the Session.
  createTransportChannel(self, channelnum)
This method should be overridden at the transport layer if there is any special work that needs to be done at channel create time.
  deleteAllChannels(self)
Attempt to delete all channels on the session
  deleteChannel(self, channelnum)
Delete a single channel from the Session
  getChannel(self, channelnum)
Get the channel object associated with a given channelnum
  getChannelState(self, channelnum)
Get the state of a particular channel.
  getProfileDict(self)
Returns this session's profile dictionary.
  greetingReceived(self)
This is a callback from the management profile to trigger processing once the connection greeting is received from the remote end.
  isChannelActive(self, channelnum)
This method provides a way of figuring out if a channel is running.
  newChannel(self, profile, chardata, encoding)
Attempt to start a new Channel with a given profile.
  processFrame(self, theframe)
Allocate a given frame to the channel it belongs to and call the channel's processing method.
  receivedAnswer(self, frame)
Use this callback from your profiles to communicate with your apps when an ANS frame is received.
  receivedMessage(self, frame)
Use this callback from your profiles to communicate with your apps when a MSG frame is received.
  setStartingChannelNum(self)
Sets the channel number of the first channel that should be created.
  shutdown(self)
Attempts to close all the channels in a session before closing down the session itself.
  shutdownComplete(self)
Called when the Session has completed its shutdown
  startChannel(self, profileList)
startChannel() attempts to start a new channel for communication.
  tuningBegin(self)
Called by a profile when a tuning reset process begins.
  tuningReset(self)
A tuning reset causes all channels, including channel Zero to be closed and a new channel zero to be created, with a new greeting sent.
  _channelClosedError(self, channelnum, code, desc)
Internal channel closure error handling
  _channelClosedSuccess(self, channelnum)
Internal channel closure method.
  _flushChannelOutbound(self)
This method gets all pending messages from all channels one at a time and places them on the Session Outbound Queue.
  _getActiveChannel(self, channelnum)
This method provides a way of getting the channel object by number.
  _getChannelZeroProfile(self)
Deprecated.
  _handleGreeting(self)
A greeting may be received in two circumstances:
  _isChannelError(self, channelnum)
Checks to see if the channel has encountered an error condition.
  _reset(self)
reset() does a tuning reset which closes all channels and terminates the session.
  _setID(self, sessId)
  _showInternalState(self)

Method Details

__init__(self)
(Constructor)

Create a new Session.

channelClosedError(self, channelnum, code, desc)

What to do if a channel close fails

channelClosedSuccess(self, channelnum)

Override this method to receive notification of channel closure

channelStarted(self, channelnum, uri)

Action to take when a positive RPY to a channel start message is received. Default is to do nothing, so override this in your subclass if you want anything to happen at this event.
Parameters:
channelnum - The channel number that was started.
uri - The URI of the profile that was started on the channel.

channelStartedError(self, channelnum)

Action to take when a negative RPY to a channel start message is received.
Parameters:
channelnum - the channel number that failed to start

closeAllChannels(self)

Attempts to close all channels on this Session

closeChannel(self, channelnum)

requestCloseChannel() attempts to close a channel.
Parameters:
channelnum - the number of the channel to close

createChannel(self, channelnum, profile)

Creates a new channel with the given channel number and binds the given profile to it for processing.
Parameters:
channelnum - the channel number for the channel
           (type=integer)
profile - the profile to bind to the channel
           (type=a Profile object)

createChannelFromURIList(self, channelnum, uriList, profileInit=None)

Attempts to create a channel given a list of possible profiles to bind to the channel. Searches the Session's ProfileDict for the first supported profile and then creates a channel bound to that profile.

This is used on the Listener side of a connection.
Parameters:
channelnum - the channel number of the channel to create
uriList - a list of URIs in order of preference
profileInit - a method to use for create time initialisation of the channel's profile
Returns:
the URI of the profile used to create the channel

createChannelZero(self)

Create the Channel 0 for the Session. A special case of createChannel that explicitly binds the channel to the BEEPManagementProfile.

Should only get called once when a Session initialises

createTransportChannel(self, channelnum)

This method should be overridden at the transport layer if there is any special work that needs to be done at channel create time.

deleteAllChannels(self)

Attempt to delete all channels on the session

deleteChannel(self, channelnum)

Delete a single channel from the Session
Parameters:
channelnum - the channel number to delete
           (type=integer)

getChannel(self, channelnum)

Get the channel object associated with a given channelnum

getChannelState(self, channelnum)

Get the state of a particular channel.

getProfileDict(self)

Returns this session's profile dictionary.

greetingReceived(self)

This is a callback from the management profile to trigger processing once the connection greeting is received from the remote end. Servers don't really do anything with this, but it's important for clients.

isChannelActive(self, channelnum)

This method provides a way of figuring out if a channel is running.
Parameters:
channelnum - the channel number to check
           (type=int)

newChannel(self, profile, chardata=None, encoding=None)

Attempt to start a new Channel with a given profile. This method is used by a peer to request a BEEP peer to start a new channel with the given profile.

This is mostly a convenience function for the common case of starting a simple channel with a single profile. For more complex start scenarios, use startChannel().
Parameters:
profile - the profile to bind to the channel
chardata - initialisation data to send as part of the channel start request.

processFrame(self, theframe)

Allocate a given frame to the channel it belongs to and call the channel's processing method.
Parameters:
theframe - the frame to process
           (type=a DataFrame object)

receivedAnswer(self, frame)

Use this callback from your profiles to communicate with your apps when an ANS frame is received.

receivedMessage(self, frame)

Use this callback from your profiles to communicate with your apps when a MSG frame is received.

setStartingChannelNum(self)

Sets the channel number of the first channel that should be created. This is used to differentiate between Listener channels and Initiator channels.

Is overridden in subclasses.

shutdown(self)

Attempts to close all the channels in a session before closing down the session itself.

shutdownComplete(self)

Called when the Session has completed its shutdown

startChannel(self, profileList)

startChannel() attempts to start a new channel for communication. It uses a more complex profileList to determine what to send to the remote peer as part of the start request.

the profileList is a list of lists with the following structure:

[ uri, encoding, chardata ]

where uri is a string URI of the profile to request, encoding is an optional encoding to use and chardata is any initialisation data to send as part of the start message.

To start a channel with the echoprofile and no special requirements, you would use a list like this:

[ [echoprofile.uri, None, None] ]

To try to start a channel first using SASL/OTP, then SASL/ANONYMOUS, you would use a list like this:

[ [saslotpprofile.uri, None, None], [saslanonymousprofile.uri, None, None] ]

More complex scenarios are possible.

tuningBegin(self)

Called by a profile when a tuning reset process begins. This is to notify the session that we're just waiting for confirmation of the tuning reset from the remote end.

tuningReset(self)

A tuning reset causes all channels, including channel Zero to be closed and a new channel zero to be created, with a new greeting sent.

This is used for turning on TLS.

_channelClosedError(self, channelnum, code, desc)

Internal channel closure error handling

_channelClosedSuccess(self, channelnum)

Internal channel closure method.

_flushChannelOutbound(self)

This method gets all pending messages from all channels one at a time and places them on the Session Outbound Queue. This should probably only be used in Tuning Resets, but you never know when it might come in handy.

Deprecated.

_getActiveChannel(self, channelnum)

This method provides a way of getting the channel object by number.

Deprecated

_getChannelZeroProfile(self)

Deprecated.

_handleGreeting(self)

A greeting may be received in two circumstances:
  • When first connecting to a peer
  • After a tuning reset

_isChannelError(self, channelnum)

Checks to see if the channel has encountered an error condition.

Deprecated.

_reset(self)

reset() does a tuning reset which closes all channels and terminates the session.

Deprecated.

Generated by Epydoc 2.0 on Thu Sep 30 14:39:25 2004 http://epydoc.sf.net