This class represents a Nirvana session, the logical connection between the client API and the Nirvana realm. More...
#include <nSession.h>
Inherits NotifyableCountableObject.
Public Member Functions | |
void | addAsyncExceptionListener (nAsyncExceptionListener *pListener) |
Adds a new asynchronous exception listener, which will be notified when an exception occurs while performing an asynchronous operation. More... | |
void | addConnectionQueueListener (nConnectionQueueListener *pListener) |
Adds a new connection queue listener, which will be notified when the internal outbound queue reaches defined limits. More... | |
void | addConnectionQueueListener (nConnectionQueueListener *pListener, bool hwm, bool lwm, bool access, bool push, bool block, bool unblock) |
Adds a new connection queue listener, which will be notified when the internal outbound queue reaches defined limits, such as. More... | |
void | addRealm (nRealm *pNewRealm, nSession *pSession=NULL) |
Adds (Joins) another realm to the realm this session is connected to. More... | |
void | addReconnectHandler (nReconnectHandler *pHandler) |
Add a session reconnect handler to the session. More... | |
void | close () |
Closes this session, disconnecting from the server and killing all threads. | |
void | commitRegisteredEventsToDataGroups (std::list< nRegisteredEvent * > &events, bool replace=false) |
Commit all registered event changes in a single call to the server. More... | |
nCreateResult ** | create (nChannelAttributes **attr, int numAttr, int &numResults) |
Creates new channels on the realm this session is connected. More... | |
nCreateResult ** | create (nChannelAttributes **attr, int numAttr, int &numResults, const std::vector< nStorePermissionList > &permissions) |
Creates new channels on the realm this session is connected. More... | |
nChannel * | createChannel (nChannelAttributes *pAttr, ulonglong p_initialEID=0) |
Creates a new channel on the realm this session is connected. More... | |
nChannel * | createChannel (nChannelAttributes *pAttr, ulonglong p_initialEID, const std::vector< nStorePermission > &channel_permission) |
Creates a new channel on the realm this session is connected. More... | |
nChannel * | createChannel (nChannelAttributes *pAttr, ulonglong initialEID, long privMask) |
Creates a new channel on the realm this session is connected. More... | |
virtual nDataGroup * | createDataGroup (const std::string &dataGroupName, nDataGroupListener *pListener=NULL, nConflationAttributes *pConflationAttributes=NULL, bool enableMulticast=false, unsigned int priorityLevel=fPrioritized::sDefaultPriority) |
Create a new data group on the server. More... | |
virtual nDataGroup * | createDataGroup (const std::string &dataGroupName, bool enableMulticast) |
Create a new data group on the server. More... | |
virtual std::list< nDataGroup * > * | createDataGroups (std::string *pDataGroupNames, int numGroup, nConflationAttributes *pConflationAttributes=NULL) |
Create new data groups on the server if they don't exist, or return them from the local list if found. More... | |
nQueue * | createQueue (nChannelAttributes *pAttr, long privMask=-1) |
Creates a new queue on the realm this session is connected. More... | |
nQueue * | createQueue (nChannelAttributes *pAttr, const std::vector< nStorePermission > &permissions) |
Creates a new queue on the realm this session is connected. More... | |
void | deleteChannel (nChannelAttributes *pAttr) |
Deletes a nirvana channel that exists on the realm this session is connected to, or a joined realm. More... | |
void | deleteDataGroup (std::string *pDataGroupNames, int numGroup) |
Deletes the specified data group from the server. More... | |
virtual void | deleteDataGroup (const std::string &dataGroupName) |
Deletes the specified data group from the server. More... | |
virtual void | deleteDataGroup (nDataGroup *pGroup) |
Deletes the specified data group from the server. More... | |
void | deleteDataGroup (nDataGroup **pGroups, int numGroup) |
Deletes the specified data group from the server. More... | |
void | deleteQueue (nChannelAttributes *pAttr) |
Deletes a nirvana queue that exists on the realm this session is connected to, or a joined realm. More... | |
void | deleteRealm (nRealm *pRealm) |
Deletes (unjoins) another realm from the realm this session is connected to. More... | |
virtual fSortedList < std::string, nFindResult * > * | find (nChannelAttributes **ppAttr, int nAttr) |
Finds and returns an array of nFindResult objects that correspond to the results of the find operations on each nChannelAttributes. More... | |
nChannel * | findChannel (nChannelAttributes *pAttr, bool useCache=true) |
Finds and returns a nirvana channel that exists on the realm this session is connected to, or a joined realm. More... | |
nQueue * | findQueue (nChannelAttributes *pAttr) |
Finds and returns a nirvana queue that exists on the realm this session is connected to, or a joined realm. More... | |
nSessionAttributes * | getAttributes () |
Gets the session attribute object associated with this session. More... | |
nChannelAttributes ** | getChannels (int &nAttr, const std::string folder="") |
Returns a list of all known channels and queues. More... | |
long | getClientKeepAlive () |
Retrieve the current keep alive interval of a particular session. More... | |
std::string | getConnectionList () |
Returns a comma separated list of RNAMEs which can be used to access the realm or cluster namespace. More... | |
long | getCurrentLatency () |
Returns the round trip time of the last synchronous request that was made. More... | |
virtual std::list< nDataGroup * > * | getDataGroups (nDataGroupListener *pListener) |
Get all known data groups on the server (excluding the default data group) and register a listener. More... | |
virtual std::list< nDataGroup * > * | getDataGroups (std::string prefix="", nDataGroupListener *pListener=NULL) |
Get all known data groups on the server that have the given prefix (excluding the default data group) and register a listener. More... | |
virtual nDataGroup * | getDefaultDataGroup (nDataGroupListener *pListener=NULL) |
Return the default nDataGroup object, and provide a listener that will receive callbacks when new streams are added or removed. More... | |
std::string | getId () |
Returns the unique session Id for this session. More... | |
ulonglong | getInputByteCount () |
Returns the number of bytes received from the server on this session object. More... | |
int | getKnownGroupCount () |
Get the size of the known data groups list. More... | |
ulonglong | getOutputByteCount () |
Returns the number of bytes sent to the server using this session object. More... | |
ulonglong | getQueueSize () |
Returns the outbound connection queue size. More... | |
nRealm * | getRealm (const std::string &name) |
Gets a reference to a realm that is already joined. More... | |
nRealm ** | getRealms (int &numRealm) |
Returns a list of all known realms on the connected realm. More... | |
ulonglong | getReceivedEventCount () |
Return the number of events received by this session. More... | |
std::string | getRemoteId () |
Returns the rname that this session has used. More... | |
ulonglong | getSentEventCount () |
Return the number of events sent by this session. More... | |
std::string | getServerRealmName () |
Returns the sessions server realm name. More... | |
ulonglong | getServerTime () |
Gets the current time on the server. More... | |
ulonglong | getSessionConnectionId () |
Returns the unique connection id associated with this session by the server. More... | |
virtual const std::string & | getStreamId () |
Get the stream Id for this session if initialised with an nDataStreamListener. More... | |
nSubject ** | getSubject (int &numSubject) |
Gets the subject associated with this nirvana session. More... | |
nSubject * | getSubjectObject () |
Gets the subject associated with this nirvana session. More... | |
void | init () |
Initialises a session object, opening the physical connection to the server. More... | |
void | init (bool disconnectIfClusterFails) |
Initialises a session object, opening the physical connection to the server. More... | |
nDataStream * | init (nDataStreamListener *pStreamListener) |
Initialises a session object, opening the physical connection to the server and supplies a nDataStreamListener to receive asynchronous direct events. More... | |
nDataStream * | init (bool fails, nDataStreamListener *pStreamListener) |
Initialises a session object, opening the physical connection to the server and supplies a nDataStreamListener to receive asynchronous direct events. More... | |
bool | isConnected () |
Returns true if this session is still connected with the remote realm. More... | |
bool | isMemberOfCluster () |
If the realm this session is connected to is part of a cluster then this function will return true. More... | |
bool | isPaused () |
Returns true if this session is paused. More... | |
void | pause (bool release) |
This function pauses delivery of new events to all subscribed nEventListeners until resume is called. More... | |
virtual void | pauseStream () |
Pause the events being received by the Data Group Listener. More... | |
bool | pingServer (long timeoutMS, bool autoClose=false) |
Sends an event to the server, to see if the server is still responding to requests. More... | |
nDeleteResult ** | remove (nChannelAttributes **attr, int numAttr, int &numResults) |
Deletes all channels in the array of nChannelAttributes array. More... | |
void | removeAsyncExceptionListener (nAsyncExceptionListener *pListener) |
Removes an already added asynchronous exception listener, which will not be notified of asynchronous exceptions anymore. More... | |
UM_DEPRECATED void | removeChannelFromCache (nChannelAttributes *pAttr) |
Remove channel from cache. More... | |
void | removeConnectionQueueListener (nConnectionQueueListener *pListener) |
Removes an already added connection queue listener, which will not be notified of queue state changes anymore. More... | |
void | removeReconnectHandler (nReconnectHandler *pHandler) |
Remove the reconnect handler from the session. More... | |
void | resume () |
Resumes delivery of events to nEventListeners. | |
virtual void | resumeStream () |
Resumes the events being received by the Data Group Listener. More... | |
void | setClientKeepAlive (long time) |
Dynamically reset the client keep alive interval of a particular session. More... | |
void | setThreadPoolSize (int size) |
Set size of thread pool. More... | |
virtual nSubscriptionAttributes ** | subscribe (nSubscriptionAttributes **ppAttributes, int nAttribute) |
Subscribe to the channels specified within the nSubscriptionAttributes array. More... | |
void | unblockThread (const std::string &name) |
Unblocks the thread of the given name that my be in a synchronous call. More... | |
void | updateConnectionListWithServerList () |
Update the current session attributes with the RNAMEs retrieved from the server. | |
virtual void | write (nConsumeEvent **evts, int nevents, nAbstractChannel *destination) |
Sends the events to the specified channel / queue. More... | |
virtual void | write (nConsumeEvent **evts, int nevents, nAbstractChannel **destinations, int ndestinations) |
Sends the events to the specified channels / queues. More... | |
virtual void | write (nConsumeEvent **evts, int nevents, nAbstractChannel **destinations, int ndestinations, bool waitForReply) |
Sends the events to the specified channels / queues. More... | |
virtual void | write (nConsumeEvent *evts, nAbstractChannel **destinations, int ndestinations, bool waitForReply) |
Sends the event to the specified channels / queues. More... | |
virtual void | write (nConsumeEvent **evts, int nevents, nAbstractChannel *destination, bool waitForReply) |
Sends the events to the specified channels / queues. More... | |
virtual void | write (nConsumeEvent *evt, nAbstractChannel *destination, bool waitForReply) |
Sends the event to the specified channel / queue. More... | |
virtual void | write (std::map< nConsumeEvent *, nAbstractChannel * > *list, bool waitForResponse) |
Sends each event in the list to its corresponding channel / queue. More... | |
virtual void | writeDataGroup (nConsumeEvent *pEvt, nDataGroup *pDataGroup, bool waitForResponse=false, bool registered=false) |
Sends the event to the specified data group. More... | |
virtual void | writeDataGroup (nConsumeEvent *pEvt, nDataGroup **ppDataGroups, int numGroup, bool waitForResponse=false) |
Sends the event to all of the specified data groups. More... | |
virtual void | writeDataGroup (nConsumeEvent **ppEvts, int numEvent, nDataGroup *pDataGroup, bool waitForResponse=false) |
Sends the list of events to the specified data group. More... | |
virtual void | writeDataGroup (nConsumeEvent **ppEvts, int numEvent, nDataGroup **ppDataGroups, int numGroup, bool waitForResponse=false) |
Sends the events to the specified streams. More... | |
virtual void | writeDataGroup (std::map< nConsumeEvent *, nDataGroup * > &list, bool waitForResponse=false, bool registered=false) |
Sends each event in the list to its corresponding data group. More... | |
virtual void | writeDataStream (nConsumeEvent *pEvt, nDataStream *pStream, bool waitForResponse=false) |
Sends the event to the specified stream. More... | |
virtual void | writeDataStream (nConsumeEvent *pEvt, nDataStream **ppStreams, int numStream, bool waitForResponse=false) |
Sends the event to the specified streams. More... | |
virtual void | writeDataStream (nConsumeEvent **ppEvts, int numEvent, nDataStream *pStream, bool waitForResponse=false) |
Sends the events to the specified stream. More... | |
virtual void | writeDataStream (nConsumeEvent **ppEvts, int numEvent, nDataStream **ppStreams, int numStream, bool waitForResponse=false) |
Sends the events to the specified streams. More... | |
void | writeDataStream (std::map< nConsumeEvent *, nDataStream * > *list, bool waitForResponse=false, bool isRegisteredEvent=false) |
Sends each event in the list to its corresponding data stream. More... | |
Static Public Member Functions | |
static long | getMaxBufferSize () |
Gets the maximum client buffer size. More... | |
static void | setMaxBufferSize (long size) |
Sets the maximum client buffer size. More... | |
This class represents a Nirvana session, the logical connection between the client API and the Nirvana realm.
A Nirvana session is defined through a set of session attributes that is represented by the nSessionAttributes class in the same package. This set of attributes is then passed to the session factory object which creates the session. A session object needs to be initialised in order for the physical connection to be opened to the server. Please note that when using a session to retrieve events from a channel or queue, you can only have 1 listener specifying a set filter per session object. For example if you have a selector set as CCY='USD' you can use that filter by only one object implementing the nEventListener interface per session, otherwise a nUserAlreadySubscribedException will be thrown.
void com::pcbsys::nirvana::client::nSession::addAsyncExceptionListener | ( | nAsyncExceptionListener * | pListener | ) |
Adds a new asynchronous exception listener, which will be notified when an exception occurs while performing an asynchronous operation.
*pListener | The asynchronous exception listener to be added |
nIllegalArgumentException | Illegal parameter, check the message for more information |
void com::pcbsys::nirvana::client::nSession::addConnectionQueueListener | ( | nConnectionQueueListener * | pListener | ) |
Adds a new connection queue listener, which will be notified when the internal outbound queue reaches defined limits.
Such as
Reaching high water mark Reaching low water mark Exceeding the time it should take to access the queue object Exceeding the time it should take to push an event onto the queue Exceeding the time for a queue to be blocked due to reaching its high water mark
*pListener | The asynchronous exception listener to be added |
nIllegalArgumentException | if the listener is Null of if already has a listener registered |
void com::pcbsys::nirvana::client::nSession::addConnectionQueueListener | ( | nConnectionQueueListener * | pListener, |
bool | hwm, | ||
bool | lwm, | ||
bool | access, | ||
bool | push, | ||
bool | block, | ||
bool | unblock | ||
) |
Adds a new connection queue listener, which will be notified when the internal outbound queue reaches defined limits, such as.
Reaching high water mark Reaching low water mark Exceeding the time it should take to access the queue object Exceeding the time it should take to push an event onto the queue Exceeding the time for a queue to be blocked due to reaching its high water mark
*pListener | The asynchronous exception listener to be added |
hwm | true to receive notifications of reaching queue high water mark |
lwm | true to receive notifications of reaching queue low water mark |
access | true to receive notification of exceeding queue access time |
push | true to receive notification of exceeding queue access and push time |
block | true to receive notification of exceeding queue block time |
unblock | true to receive notification of exceeding queue unblock time |
nIllegalArgumentException | if the listener is Null of if already has a listener registered |
void com::pcbsys::nirvana::client::nSession::addRealm | ( | nRealm * | pNewRealm, |
nSession * | pSession = NULL |
||
) |
Adds (Joins) another realm to the realm this session is connected to.
*pNewRealm | The realm to join as an nRealm object |
*pSession | A session to the realm we want to add to |
nRealmAlreadyBoundException | The realm is known by the server |
nRealmUnreachableException | The specified realm is already configured |
nRealmNotFoundException | The realm is not known by the server |
nSecurityException | User is not authorised for the function |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nNameSpaceConflictException | The realm conflicts with the existing namespace |
nSessionPausedException | The session is currently paused, please resume |
void com::pcbsys::nirvana::client::nSession::addReconnectHandler | ( | nReconnectHandler * | pHandler | ) |
Add a session reconnect handler to the session.
Usually the handler is passed in when the session is constructed from the nSessionFactory, however this method allows you to pass in a handler once a session has been constructed.
*pHandler | - the nReconnectHandler object for this session |
void com::pcbsys::nirvana::client::nSession::commitRegisteredEventsToDataGroups | ( | std::list< nRegisteredEvent * > & | events, |
bool | replace = false |
||
) |
Commit all registered event changes in a single call to the server.
events | the registered events that have changed |
replace | override the events on the server |
nSecurityException | |
nSessionPausedException | |
nIllegalArgumentException | |
nSessionNotConnectedException | |
nRequestTimedOutException | |
nUnexpectedResponseException | |
nPublishPausedException | when publishing is paused server side |
nCreateResult** com::pcbsys::nirvana::client::nSession::create | ( | nChannelAttributes ** | attr, |
int | numAttr, | ||
int & | numResults | ||
) |
Creates new channels on the realm this session is connected.
attr | The channel attributes array containing the new channel or queue attributes |
numAttr | The length of the attr array |
numResults | The length of the array that is returned |
nUnknownRemoteRealmException | The remote realm responded with an unknown exception |
nSecurityException | User is not authorised for the function |
nChannelAlreadyExistsException | The channel already exists |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occured, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
nCreateResult** com::pcbsys::nirvana::client::nSession::create | ( | nChannelAttributes ** | attr, |
int | numAttr, | ||
int & | numResults, | ||
const std::vector< nStorePermissionList > & | permissions | ||
) |
Creates new channels on the realm this session is connected.
attr | The channel attributes array containing the new channel or queue attributes |
numAttr | The length of the attr array |
numResults | The length of the array that is returned |
permissions | vector containing vectors of permission entries to be applied during creation. Permission lists and channel attributes are mapped by their order. |
nUnknownRemoteRealmException | The remote realm responded with an unknown exception |
nSecurityException | User is not authorised for the function |
nChannelAlreadyExistsException | The channel already exists |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occured, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
nChannel* com::pcbsys::nirvana::client::nSession::createChannel | ( | nChannelAttributes * | pAttr, |
ulonglong | p_initialEID = 0 |
||
) |
Creates a new channel on the realm this session is connected.
If the channel attributes specify a realm different than the one this session is connected to, a transparent redirection will occur and the channel will be created on that realm.
*pAttr | The channel attributes object containing the parameters for the new channel to be created |
p_initialEID | The value to start the event id at |
nUnknownRemoteRealmException | The remote realm responded with an unknown exception |
nSecurityException | User is not authorised for the function |
nChannelAlreadyExistsException | The channel already exists |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
nChannel* com::pcbsys::nirvana::client::nSession::createChannel | ( | nChannelAttributes * | pAttr, |
ulonglong | p_initialEID, | ||
const std::vector< nStorePermission > & | channel_permission | ||
) |
Creates a new channel on the realm this session is connected.
If the channel attributes specify a realm different than the one this session is connected to, a transparent redirection will occur and the channel will be created on that realm.
pAttr | The channel attributes object containing the parameters for the new channel to be created |
p_initialEID | The value to start the event id at |
channel_permissions | vector containing nStorePermission entries with security privileges that can be applied for a specific user |
nUnknownRemoteRealmException | The remote realm responded with an unknown exception |
nSecurityException | User is not authorised for the function |
nChannelAlreadyExistsException | The channel already exists |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
nChannel* com::pcbsys::nirvana::client::nSession::createChannel | ( | nChannelAttributes * | pAttr, |
ulonglong | initialEID, | ||
long | privMask | ||
) |
Creates a new channel on the realm this session is connected.
If the channel attributes specify a realm different than the one this session is connected to, a transparent redirection will occur and the channel will be created on that realm.
*pAttr | The channel attributes object containing the parameters for the new channel to be created |
initialEID | The value to start the event id at |
privMask | Privilege mask to apply to the "everyone" subject for this channel |
nUnknownRemoteRealmException | The remote realm responded with an unknown exception |
nSecurityException | User is not authorised for the function |
nChannelAlreadyExistsException | The channel already exists |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
|
virtual |
Create a new data group on the server.
If the data group exists already, and the groups have already been retrieved by this nSession the nDataGroup will be returned from the local list of data groups. Otherwise this method will send an event to the server.
dataGroupName | the name of the data group to create |
pListener | the instance of the nDataGroupListener that will receive the callbacks for this group. Default = NULL |
pConflationAttributes | the conflation strategy to use on the data group. Default = NULL |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nSecurityException | |
nUnexpectedResponseException | |
nIllegalArgumentException |
|
virtual |
Create a new data group on the server.
If the data group exists already, and the groups have already been retrieved by this nSession the nDataGroup will be returned from the local list of data groups. Otherwise this method will send an event to the server.
dataGroupName | the name of the data group to create |
enableMulticast | should this datagroup support multicast |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nSecurityException | |
nUnexpectedResponseException | |
nIllegalArgumentException |
|
virtual |
Create new data groups on the server if they don't exist, or return them from the local list if found.
pDataGroupNames | the names of the data groups to create |
numGroup | the number of group names in the array |
pConflationAttributes | the conflation strategy to be applied to the data groups. Default = NULL |
nQueue* com::pcbsys::nirvana::client::nSession::createQueue | ( | nChannelAttributes * | pAttr, |
long | privMask = -1 |
||
) |
Creates a new queue on the realm this session is connected.
If the channel attributes specify a realm different than the one this session is connected to, a transparent redirection will occur and the queue will be created on that realm.
*pAttr | The channel attributes object containing the parameters for the new queue to be created |
privMask | Privilege mask to apply to the "everyone" subject for this queue |
nUnknownRemoteRealmException | The remote realm responded with an unknown exception |
nSecurityException | User is not authorised for the function |
nChannelAlreadyExistsException | The channel already exists |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
nQueue* com::pcbsys::nirvana::client::nSession::createQueue | ( | nChannelAttributes * | pAttr, |
const std::vector< nStorePermission > & | permissions | ||
) |
Creates a new queue on the realm this session is connected.
<p / > If the channel attributes specify a realm different than the one this session is connected to, a transparent redirection will occur and the queue will be created on that realm.
pAttr | The channel attributes object containing the parameters for the new queue to be created |
permissions | vector containing nStorePermission permission entries with security privileges that can be applied for a specific user |
nUnknownRemoteRealmException | The remote realm responded with an unknown exception |
nSecurityException | User is not authorised for the function |
nChannelAlreadyExistsException | The channel already exists |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occured, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
void com::pcbsys::nirvana::client::nSession::deleteChannel | ( | nChannelAttributes * | pAttr | ) |
Deletes a nirvana channel that exists on the realm this session is connected to, or a joined realm.
Note: all events in that channel will be deleted too and are not recoverable.
*pAttr | The channel attributes of the channel to be deleted |
nUnknownRemoteRealmException | The remote realm responded with an unknown exception |
nSecurityException | User is not authorised for the function |
nChannelNotFoundException | The specified channel could not be found |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
void com::pcbsys::nirvana::client::nSession::deleteDataGroup | ( | std::string * | pDataGroupNames, |
int | numGroup | ||
) |
Deletes the specified data group from the server.
pDataGroupNames | array of data group names to be deleted |
numGroup | size of data group |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nSecurityException | |
nIllegalArgumentException | |
nUnexpectedResponseException |
|
virtual |
Deletes the specified data group from the server.
dataGroupName | the name of the data group to delete |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nSecurityException | |
nIllegalArgumentException | |
nUnexpectedResponseException |
|
virtual |
Deletes the specified data group from the server.
pGroup | the data group to delete |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nSecurityException | |
nUnexpectedResponseException |
void com::pcbsys::nirvana::client::nSession::deleteDataGroup | ( | nDataGroup ** | pGroups, |
int | numGroup | ||
) |
Deletes the specified data group from the server.
pGroups | the data groups to delete |
numGroup | the size of the data group |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nSecurityException | |
nUnexpectedResponseException |
void com::pcbsys::nirvana::client::nSession::deleteQueue | ( | nChannelAttributes * | pAttr | ) |
Deletes a nirvana queue that exists on the realm this session is connected to, or a joined realm.
Note: all events in that queue will be deleted too and are not recoverable.
*pAttr | The channel attributes of the queue to be deleted |
nUnknownRemoteRealmException | The remote realm responded with an unknown exception |
nSecurityException | User is not authorised for the function |
nChannelNotFoundException | The specified channel could not be found |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
void com::pcbsys::nirvana::client::nSession::deleteRealm | ( | nRealm * | pRealm | ) |
Deletes (unjoins) another realm from the realm this session is connected to.
*pRealm | The realm to unjoin as an nRealm object |
nRealmNotFoundException | The supplied realm could not be found on the server |
nSecurityException | User is not authorised for the function |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
|
virtual |
Finds and returns an array of nFindResult objects that correspond to the results of the find operations on each nChannelAttributes.
**ppAttr | The channel attributes of the channels / queues to be found |
nAttr | The length of the returned ppAttr array |
nUnknownRemoteRealmException | The remote realm responded with an unknown exception |
nSecurityException | User is not authorised for the function |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
nChannel* com::pcbsys::nirvana::client::nSession::findChannel | ( | nChannelAttributes * | pAttr, |
bool | useCache = true |
||
) |
Finds and returns a nirvana channel that exists on the realm this session is connected to, or a joined realm.
*pAttr | The channel attributes of the channel to be found |
nChannelNotFoundException | The channel specified could not be found |
nUnknownRemoteRealmException | The remote realm responded with an unknown exception |
nSecurityException | User is not authorised for the function |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nIllegalChannelMode | The channel referenced is a queue |
nSessionPausedException | The session is currently paused, please resume |
nQueue* com::pcbsys::nirvana::client::nSession::findQueue | ( | nChannelAttributes * | pAttr | ) |
Finds and returns a nirvana queue that exists on the realm this session is connected to, or a joined realm.
*pAttr | The channel attributes of the queue to be found |
nChannelNotFoundException | The specified queue could not be found |
nUnknownRemoteRealmException | The remote realm responded with an unknown exception |
nSecurityException | User is not authorised for the function |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nIllegalChannelMode | The queue referenced is a channel |
nSessionPausedException | The session is currently paused, please resume |
nSessionAttributes* com::pcbsys::nirvana::client::nSession::getAttributes | ( | ) |
Gets the session attribute object associated with this session.
nChannelAttributes** com::pcbsys::nirvana::client::nSession::getChannels | ( | int & | nAttr, |
const std::string | folder = "" |
||
) |
Returns a list of all known channels and queues.
nAttr | the length of the returned array |
folder | specify the starting point in the namespace within which to retrieve the channels |
nSecurityException | User is not authorised for the function |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nSessionPausedException | The session is currently paused, please resume |
long com::pcbsys::nirvana::client::nSession::getClientKeepAlive | ( | ) |
Retrieve the current keep alive interval of a particular session.
std::string com::pcbsys::nirvana::client::nSession::getConnectionList | ( | ) |
Returns a comma separated list of RNAMEs which can be used to access the realm or cluster namespace.
This value is calculated and updated by the server which this session is currently connected to.
long com::pcbsys::nirvana::client::nSession::getCurrentLatency | ( | ) |
Returns the round trip time of the last synchronous request that was made.
|
virtual |
Get all known data groups on the server (excluding the default data group) and register a listener.
The listener will receive callbacks whenever a stream or group is created/deleted or added/removed from a group.
pListener | the instance of the nDataGroupListener that will receive callbacks for all known data groups including the default |
|
virtual |
Get all known data groups on the server that have the given prefix (excluding the default data group) and register a listener.
The listener will receive callbacks whenever a stream or group is created/deleted or added/removed from a group.
prefix | will only return datagroups that have names with this prefix |
pListener | the instance of the nDataGroupListener that will receive callbacks for all known data groups including the default |
|
virtual |
Return the default nDataGroup object, and provide a listener that will receive callbacks when new streams are added or removed.
pListener | the instance of the nDataGroupListener that will receive the callbacks to the default group |
std::string com::pcbsys::nirvana::client::nSession::getId | ( | ) |
Returns the unique session Id for this session.
nSessionNotConnectedException | Current session is not connected |
ulonglong com::pcbsys::nirvana::client::nSession::getInputByteCount | ( | ) |
Returns the number of bytes received from the server on this session object.
int com::pcbsys::nirvana::client::nSession::getKnownGroupCount | ( | ) |
Get the size of the known data groups list.
|
static |
Gets the maximum client buffer size.
The default value is 1 MB
ulonglong com::pcbsys::nirvana::client::nSession::getOutputByteCount | ( | ) |
Returns the number of bytes sent to the server using this session object.
ulonglong com::pcbsys::nirvana::client::nSession::getQueueSize | ( | ) |
Returns the outbound connection queue size.
nRealm* com::pcbsys::nirvana::client::nSession::getRealm | ( | const std::string & | name | ) |
Gets a reference to a realm that is already joined.
name | A string specifying the name of the realm to be returned |
nRealmNotFoundException | The realm name supplied could not be found on the server |
nSecurityException | User is not authorised for the function |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
nRealm** com::pcbsys::nirvana::client::nSession::getRealms | ( | int & | numRealm | ) |
Returns a list of all known realms on the connected realm.
nSecurityException | User is not authorised for the function |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nIllegalArgumentException | Illegal parameter, check the message for more information |
nSessionPausedException | The session is currently paused, please resume |
ulonglong com::pcbsys::nirvana::client::nSession::getReceivedEventCount | ( | ) |
Return the number of events received by this session.
std::string com::pcbsys::nirvana::client::nSession::getRemoteId | ( | ) |
Returns the rname that this session has used.
nSessionNotConnectedException | Current session is not connected |
ulonglong com::pcbsys::nirvana::client::nSession::getSentEventCount | ( | ) |
Return the number of events sent by this session.
std::string com::pcbsys::nirvana::client::nSession::getServerRealmName | ( | ) |
Returns the sessions server realm name.
nSessionNotConnectedException | If the session is not currently connected with the server |
ulonglong com::pcbsys::nirvana::client::nSession::getServerTime | ( | ) |
Gets the current time on the server.
nSecurityException | User is not authorised for the function |
nSessionNotConnectedException | Current session is not connected |
nUnexpectedResponseException | Internal Error has occurred, since we received a response from the server out of sequence |
nRequestTimedOutException | The server has not responded to the request in the timeout period |
nSessionPausedException | The session is currently paused, please resume |
ulonglong com::pcbsys::nirvana::client::nSession::getSessionConnectionId | ( | ) |
Returns the unique connection id associated with this session by the server.
|
virtual |
Get the stream Id for this session if initialised with an nDataStreamListener.
nSubject** com::pcbsys::nirvana::client::nSession::getSubject | ( | int & | numSubject | ) |
Gets the subject associated with this nirvana session.
nSessionNotConnectedException | If the session is not currently connected with the server |
nSubject* com::pcbsys::nirvana::client::nSession::getSubjectObject | ( | ) |
Gets the subject associated with this nirvana session.
nSessionNotConnectedException | If the session is not currently connected with the server |
void com::pcbsys::nirvana::client::nSession::init | ( | ) |
Initialises a session object, opening the physical connection to the server.
nRealmUnreachableException | if the realm is currently not available |
nSessionNotConnectedException | Current session is not connected |
nSessionAlreadyInitialisedException | The session has already been initialised |
nSecurityException | Insufficient privileges |
void com::pcbsys::nirvana::client::nSession::init | ( | bool | disconnectIfClusterFails | ) |
Initialises a session object, opening the physical connection to the server.
disconnectIfClusterFails | - if the cluster loses quorum, should this nSession become disconnected (true/false) |
nRealmUnreachableException | if the realm is currently not available |
nSessionNotConnectedException | Current session is not connected |
nSessionAlreadyInitialisedException | The session has already been initialised |
nSecurityException | Insufficient privileges |
nDataStream* com::pcbsys::nirvana::client::nSession::init | ( | nDataStreamListener * | pStreamListener | ) |
Initialises a session object, opening the physical connection to the server and supplies a nDataStreamListener to receive asynchronous direct events.
nRealmUnreachableException | if the realm is currently not available |
nSessionNotConnectedException | Current session is not connected |
nSessionAlreadyInitialisedException | The session has already been initialised |
nSecurityException | Insufficient privileges |
pStreamListener | - a stream listener to receive asynchronous events |
nDataStream* com::pcbsys::nirvana::client::nSession::init | ( | bool | fails, |
nDataStreamListener * | pStreamListener | ||
) |
Initialises a session object, opening the physical connection to the server and supplies a nDataStreamListener to receive asynchronous direct events.
disconnectIfClusterFails | - if the cluster loses quorum, should this nSession become disconnected (true/false) |
nRealmUnreachableException | if the realm is currently not available |
nSessionNotConnectedException | Current session is not connected |
nSessionAlreadyInitialisedException | The session has already been initialised |
nSecurityException | Insufficient privileges |
fails | - if the cluster loses quorum, should this nSession become disconnected (true/false) |
pStreamListener | - a stream listener to receive asynchronous events |
bool com::pcbsys::nirvana::client::nSession::isConnected | ( | ) |
Returns true if this session is still connected with the remote realm.
bool com::pcbsys::nirvana::client::nSession::isMemberOfCluster | ( | ) |
If the realm this session is connected to is part of a cluster then this function will return true.
bool com::pcbsys::nirvana::client::nSession::isPaused | ( | ) |
Returns true if this session is paused.
void com::pcbsys::nirvana::client::nSession::pause | ( | bool | release | ) |
This function pauses delivery of new events to all subscribed nEventListeners until resume is called.
release | specifies whether to release any outstanding synchronous requests awaiting responses from the server |
|
virtual |
Pause the events being received by the Data Group Listener.
This is not currently implemented
Exception |
bool com::pcbsys::nirvana::client::nSession::pingServer | ( | long | timeoutMS, |
bool | autoClose = false |
||
) |
Sends an event to the server, to see if the server is still responding to requests.
The call is synchronous, meaning that the call will wait for a response from the server before returning to the caller. Note that this call is completely exception safe (ie. no exceptions are thrown).
timeoutMS | indicates the amount of time in milliseconds to wait for a response. |
autoClose | is optional, and will automatically close the session if the value is true and the value in timeoutMS has elapsed. After closure, the session will attempt to automatically reconnect to the server. |
nDeleteResult** com::pcbsys::nirvana::client::nSession::remove | ( | nChannelAttributes ** | attr, |
int | numAttr, | ||
int & | numResults | ||
) |
Deletes all channels in the array of nChannelAttributes array.
attr | The channel attributes array to delete |
numAttr | The length of the attr array |
numResults | The length of the array that is returned |
nUnknownRemoteRealmException"> | The remote realm responded with an unknown exception |
nSecurityException"> | User is not authorised for the function |
nChannelNotFoundException"> | The channel doesn't exist |
nSessionNotConnectedException"> | Current session is not connected |
nUnexpectedResponseException"> | Internal Error has occured, since we received a response from the server out of sequence |
nRequestTimedOutException"> | The server has not responded to the request in the timeout period |
nIllegalArgumentException"> | Illegal parameter, check the message for more information |
nSessionPausedException"> | The session is currently paused, please resume |
void com::pcbsys::nirvana::client::nSession::removeAsyncExceptionListener | ( | nAsyncExceptionListener * | pListener | ) |
Removes an already added asynchronous exception listener, which will not be notified of asynchronous exceptions anymore.
*pListener | The asynchronous exception listener to be added |
nIllegalArgumentException | Illegal parameter, check the message for more information |
UM_DEPRECATED void com::pcbsys::nirvana::client::nSession::removeChannelFromCache | ( | nChannelAttributes * | pAttr | ) |
Remove channel from cache.
void com::pcbsys::nirvana::client::nSession::removeConnectionQueueListener | ( | nConnectionQueueListener * | pListener | ) |
Removes an already added connection queue listener, which will not be notified of queue state changes anymore.
*pListener | The asynchronous exception listener to be added |
nIllegalArgumentException | if the listener is Null of if no listener registered |
void com::pcbsys::nirvana::client::nSession::removeReconnectHandler | ( | nReconnectHandler * | pHandler | ) |
Remove the reconnect handler from the session.
*pHandler | - the reconnect handler to be removed |
|
virtual |
Resumes the events being received by the Data Group Listener.
This is not currently implemented
Exception |
void com::pcbsys::nirvana::client::nSession::setClientKeepAlive | ( | long | time | ) |
Dynamically reset the client keep alive interval of a particular session.
time | indicates the time (in milliseconds) of the new keep alive interval. |
|
static |
Sets the maximum client buffer size.
The default value is 1 MB
size | an int specifying the new maximum client buffer size |
nIllegalArgumentException | Illegal parameter, check the message for more information |
void com::pcbsys::nirvana::client::nSession::setThreadPoolSize | ( | int | size | ) |
Set size of thread pool.
size | the size of the thread pool |
|
virtual |
Subscribe to the channels specified within the nSubscriptionAttributes array.
ppAttributes | - the details of each channel subscription |
nAttribute | - the returned length of ppAttributes param nAttribute - the number of attributes |
Exception | if the server encounters any problem during this operation |
nIllegalArgumentException | if attributes contains a illegal value |
void com::pcbsys::nirvana::client::nSession::unblockThread | ( | const std::string & | name | ) |
Unblocks the thread of the given name that my be in a synchronous call.
name | the name of the thread |
|
virtual |
Sends the events to the specified channel / queue.
evts | the array of events to write to the channel |
nevents | the size of the evts array |
destination | the stream to write to |
|
virtual |
Sends the events to the specified channels / queues.
evts | the array of events to write to the channels / queues |
destinations | the array of channels / queues to write to |
ndestinations | the size of the destinations array |
|
virtual |
Sends the events to the specified channels / queues.
evts | the array of events to write to the channels / queues |
nevents | the size of the evts array |
destinations | the array of channels / queues to write to |
ndestinations | the size of the destinations array |
waitForReply | if true then the method will not return until it receives a response from the server |
|
virtual |
Sends the event to the specified channels / queues.
evts | the event to write to the channels / queues |
destinations | the array of channels / queues to write to |
ndestinations | the size of the destinations array |
waitForReply | if true then the method will not return until it receives a response from the server |
|
virtual |
Sends the events to the specified channels / queues.
evts | the array of events to write to the channel / queue |
nevents | the size of the evts array |
destination | the channel / queue to write to |
waitForReply | if true then the method will not return until it receives a response from the server |
|
virtual |
Sends the event to the specified channel / queue.
evt | the event to write to the channel / queue |
destination | the channel / queue to write to |
waitForReply | if true then the method will not return until it receives a response from the server |
|
virtual |
Sends each event in the list to its corresponding channel / queue.
list | key,value list of nConsumeEvent and channel / queue |
waitForResponse | if true then the method will not return until it receives a response from the server |
|
virtual |
Sends the event to the specified data group.
pEvt | the event to write to the data group |
pDataGroup | the data group to write to |
waitForResponse | whether to wait for a response. Default = false |
registered | whether the event is registered. Default = false |
nSecurityException | |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nPublishPausedException | when publishing is paused server side |
|
virtual |
Sends the event to all of the specified data groups.
pEvt | the event to write to the data groups |
ppDataGroups | the array of data groups to write to |
numGroup | the length of the ppDataGroups array |
waitForResponse | whether to wait for a response. Default = false |
nSecurityException | |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nPublishPausedException | when publishing is paused server side |
|
virtual |
Sends the list of events to the specified data group.
ppEvts | the array of events to write to the group |
numEvent | the number of events in the array |
pDataGroup | the data group to write to |
waitForResponse | whether to wait for a response. Default = false |
nSecurityException | |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nPublishPausedException | when publishing is paused server side |
|
virtual |
Sends the events to the specified streams.
ppEvts | the array of events to write to the stream |
numEvent | the number of events in the array |
ppDataGroups | the groups to write to |
numGroup | the number of groups in the array |
waitForResponse | whether to wait for a response. Default = false |
nSecurityException | |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nPublishPausedException | when publishing is paused server side |
|
virtual |
Sends each event in the list to its corresponding data group.
list | the <key,value> list of nConsumeEvent and data groups |
waitForResponse | whether to wait for a response. Default = false |
registered | whether the event is registered. Default = false |
|
virtual |
Sends the event to the specified stream.
pEvt | the event to write to the stream |
pStream | the stream to write to |
waitForResponse | whether to wait for a response. Default = false |
nSecurityException | |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nPublishPausedException | when publishing is paused server side |
|
virtual |
Sends the event to the specified streams.
pEvt | the event to write to the streams |
ppStreams | the array of streams to write to |
numStream | the number of streams in the array |
waitForResponse | whether to wait for a response. Default = false |
nSecurityException | |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nPublishPausedException | when publishing is paused server side |
|
virtual |
Sends the events to the specified stream.
ppEvts | the array of events to write to the stream |
numEvent | the number of events in the array |
pStream | the stream to write to |
waitForResponse | whether to wait for a response. Default = false |
nSecurityException | |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nPublishPausedException | when publishing is paused server side |
|
virtual |
Sends the events to the specified streams.
ppEvts | the array of events to write to the stream |
numEvent | the number of events in the array |
ppStreams | the array of streams to write to |
numStream | the number of streams in the array |
waitForResponse | whether to wait for a response. Default = false |
nSecurityException | |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nPublishPausedException | when publishing is paused server side |
void com::pcbsys::nirvana::client::nSession::writeDataStream | ( | std::map< nConsumeEvent *, nDataStream * > * | list, |
bool | waitForResponse = false , |
||
bool | isRegisteredEvent = false |
||
) |
Sends each event in the list to its corresponding data stream.
waitForResponse | if true then the method will not return until it receives a response from the server |
registered | whether the event is registered. Default = false |
list | the <key,value> list of nConsumeEvent and data streams |
nSecurityException | |
nRequestTimedOutException | |
nSessionPausedException | |
nSessionNotConnectedException | |
nPublishPausedException | when publishing is paused server side |