class CAVERN_irb_c

Class for the personal IRB returned from CAVERNInit()

Public Classes

enum status_t
Status codes returned from various methods.
OK
Operation successful.
FAILED
Operation failed.
KEY_NOT_DEFINED
Key does not exist anywhere- not in persistent store, nor in the current database.
KEY_PERSISTENT_NOT_DEFINED
Key exists in persistent store but has not been loaded into current database.
KEY_PERSISTENT_DEFINED
Key is persistent and is currently in the database.
KEY_TRANSIENT_DEFINED
Key is not persistent but is currently in the database.

Public Methods

CAVERN_irbChannel_c* createChannel ()
Create a channel (either TCP or UDP) over which local and remote keys may share data
CAVERN_irbMcastChannel_c* createMcastChannel ()
Create a multicast channel to a multicast group
CAVERN_irbKey_c* define (CAVERN_irbKeyId_c *newKeyInfo, CAVERN_keyDefAttrib_c *keyDef, CAVERN_irb_c::status_t *status)
Define a key on the personal IRB
void existsKey (CAVERN_irbKeyId_c *newKeyInfo, CAVERN_irb_c::status_t *status)
Determine whether a key has previously been defined
CAVERN_irbId_c getSelfIRBId ()
Find out what your IRB ID is (in terms of initial IP and port.)
~CAVERN_irb_c ()
Deleting the IRB will shut it down

Public

enum status_t
Status codes returned from various methods.
OK
Operation successful.
FAILED
Operation failed.
KEY_NOT_DEFINED
Key does not exist anywhere- not in persistent store, nor in the current database.
KEY_PERSISTENT_NOT_DEFINED
Key exists in persistent store but has not been loaded into current database.
KEY_PERSISTENT_DEFINED
Key is persistent and is currently in the database.
KEY_TRANSIENT_DEFINED
Key is not persistent but is currently in the database.

Documentation

Class for the personal IRB returned from CAVERNInit(). CAVERNInit() is the only function that generates this object. Each client or server program only has 1 of these objects.

Once you have this IRB object you can call the CAVERN_irb_c::define() member function to define local keys in which data may be stored.

Then you can create a channel (CAVERN_irbChannel_c) between a local and remote IRB and link (CAVERN_link_c) keys over this channel so that any updates to a key will be shared across the network.

~CAVERN_irb_c()
Deleting the IRB will shut it down. It will also shutdown your application- Nexus won't let me keep the application alive.

CAVERN_irbChannel_c* createChannel()
Create a channel (either TCP or UDP) over which local and remote keys may share data. After a channel is created it can be opened to connect to a remote IRB. See CAVERN_irbChannel_c::open().
Returns:
a CAVERN_irbChannel_c object or NULL if failed.

CAVERN_irbMcastChannel_c* createMcastChannel()
Create a multicast channel to a multicast group. After a channel is created it can be opened to connect to the mcast group by using CAVERN_irbMcastChannel_c::open().
Returns:
a CAVERN_irbMcastChannel_c object or NULL if failed.

CAVERN_irbKey_c* define(CAVERN_irbKeyId_c *newKeyInfo, CAVERN_keyDefAttrib_c *keyDef, CAVERN_irb_c::status_t *status)
Define a key on the personal IRB.

Returns:
A handle to the database. Delete the handle when you're done referencing it. It will help free up system resources.
Parameters:
keyDef - if set to NULL then it assumes default settings. Currently this is not used so please set it to NULL.
status - returns either: OK or FAILED.

void existsKey(CAVERN_irbKeyId_c *newKeyInfo, CAVERN_irb_c::status_t *status)
Determine whether a key has previously been defined. Keys can either be transient or persistent as well as defined or not. Persistent keys are keys that have an actual record in the persistent store (ie disk). Transient key are keys that in the current database cache but has never been committed to persistent store.

Parameters:
newKeyInfo - is the key you want to find out about.
status - returns either: KEY_NOT_DEFINED, KEY_PERSISTENT_DEFINED, KEY_TRANSIENT_DEFINED, KEY_PERSISTENT_NOT_DEFINED.


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