class CAVERN_irbChannel_c

IRB Communications Channel class

Public Classes

enum CAVERN_channelEvent_t
Trigger event types for channels.
BROKEN_CHANNEL
Broken link due to break of connection.
QOS_DEVIATION
Triggers when the QoS of the network service begins to deviate.
enum CAVERN_networkReliability_t
Network reliability types
RELIABLE
Use reliable protocols- DEFAULT.
UNRELIABLE
Use unreliable protocols.
enum CAVERN_update_t
Update types
ACTIVE_UPDATE
Active update- DEFAULT.
PASSIVE_UPDATE
Passive update.
enum status_t
Status codes returned from CAVERN_irbChannel_c methods.
OK
Operation succeeded.
FAILED
Operation failed.
NEGOTIATED
Used for QoS- operation negotiated a lower QoS.

Public Methods

void close ()
Close an open channel.
CAVERN_irbLink_c* link (CAVERN_irbKey_c* localKey, CAVERN_irbKeyId_c* remoteKeyID, CAVERN_linkAttrib_c* attr=NULL)
Link a local and remote key together using this channel
void open (CAVERN_irbId_c* remoteIRB, CAVERN_qosAttrib_c* qosAttr, CAVERN_networkReliability_t reliability, CAVERN_irbChannel_c::status_t *retStatus)
Open the channel to a remote IRB
void reserveQoS (CAVERN_qosAttrib_c *, CAVERN_irbChannel_c::status_t *retStatus)
Reserve Network Channel's Quality of Service
void trigger (void (*callback)(CAVERN_irbChannel_c::CAVERN_channelEvent_t event, CAVERN_irbChannel_c *thisChannel, void* userData), void* userData)
Trigger on events about the channel
~CAVERN_irbChannel_c ()
Deleting this channel will close the channel

Public

enum CAVERN_channelEvent_t
Trigger event types for channels.
BROKEN_CHANNEL
Broken link due to break of connection.
QOS_DEVIATION
Triggers when the QoS of the network service begins to deviate.
enum CAVERN_networkReliability_t
Network reliability types
RELIABLE
Use reliable protocols- DEFAULT.
UNRELIABLE
Use unreliable protocols.
enum CAVERN_update_t
Update types
ACTIVE_UPDATE
Active update- DEFAULT.
PASSIVE_UPDATE
Passive update.
enum status_t
Status codes returned from CAVERN_irbChannel_c methods.
OK
Operation succeeded.
FAILED
Operation failed.
NEGOTIATED
Used for QoS- operation negotiated a lower QoS.

Documentation

IRB Communications Channel class. Channels are the actual communication pathways that are set up between local and remote CAVERNsoft-based clients/servers. These channels can be set to transmit data via reliable TCP or unreliable UDP. Also at some point in the future channels can be used to set the kind of quality of service options (bandwidth, latency, jitter requirements) desired by your application. Your application can open as many channels as you like, each possibly with differing communications characteristics. Once these channels are created you may choose what pieces of data are transmitted over them by linking local keys with remote keys (see CAVERN_irbLink_c).
~CAVERN_irbChannel_c()
Deleting this channel will close the channel. Also it will unlink all links.

void open(CAVERN_irbId_c* remoteIRB, CAVERN_qosAttrib_c* qosAttr, CAVERN_networkReliability_t reliability, CAVERN_irbChannel_c::status_t *retStatus)
Open the channel to a remote IRB
Parameters:
CAVERN_irbId_c - Specifies remote IRB.
CAVERN_qosAttrib_c - Specifies the desired QoS. It returns set with the QoS it was able to negotiate. Currently this feature has not been implemented since Nexus does not yet support QoS capabilities.
CAVERN_networkReliability_t - selects either CAVERN_irbChannel_c::RELIABLE or CAVERN_irbChannel_c::UNRELIABLE transmission.
status - returns OK if got contract ; NEGOTIATED if had to negotiate for lower QoS; FAILED if completely failed.

void reserveQoS(CAVERN_qosAttrib_c *, CAVERN_irbChannel_c::status_t *retStatus)
Reserve Network Channel's Quality of Service
Parameters:
CAVERN_qosAttrib_c - Specifies the desired network quality of service (QoS). It returns set with the QoS it was able to negotiate. If no QoS attributes are desired, then set this parameter to NULL.
retStatus - returns OK if got contract ; NEGOTIATED if had to negotiate for lower ; FAILED if completely failed. Currently this feature has not been implemented since Nexus does not yet support QoS capabilities.

CAVERN_irbLink_c* link(CAVERN_irbKey_c* localKey, CAVERN_irbKeyId_c* remoteKeyID, CAVERN_linkAttrib_c* attr=NULL)
Link a local and remote key together using this channel. Returns a link object if successful, else NULL. Linking allows you to store data in a local key and have it automatically propagated to a remotely linked key and vice versa. Linking to a non-existant remote key will dynamically create the remote key.

void trigger(void (*callback)(CAVERN_irbChannel_c::CAVERN_channelEvent_t event, CAVERN_irbChannel_c *thisChannel, void* userData), void* userData)
Trigger on events about the channel. For example, if a connection breaks the user can be warned by a BROKEN_CHANNEL event.

Parameters:
callback - Callback should be of the form: void callback(CAVERN_irbChannel_c::CAVERN_channelEvent_t event, CAVERN_irbChannel_c *thisChannel, void* userData);


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de