- com
- pcbsys
- nirvana
- client
- nQueueReader
This class is the base class for all Queue Readers and provides a generic reader interface. More...
#include <nQueueReader.h>
Public Member Functions | |
virtual void | close ()=0 |
Close the subscription, and notify the server. | |
virtual void | closeLocally ()=0 |
Close the subscription, but do not notify the server. | |
void | destroyReader () |
This call will release any outstanding resources on the server and close the reader. More... | |
void | destroyReaderLocally () |
This call will close local reader resources but remain subscribed at the server Any future calls to this object will work unless destroyReader() is called. More... | |
bool | hasConsumedEvents () |
Method to see whether the reader has consumed any events. More... | |
bool | isClosed () |
When a reader is closed, the physical subscription is closed at the server. More... | |
bool | isClosedLocally () |
A reader can be closed, but the physical subscription queue is not closed at the server. More... | |
nConsumeEvent ** | peek (nQueuePeekContext *pContext, int &nEvent) |
Performs a non destructive read. More... | |
Static Public Member Functions | |
static nQueuePeekContext * | createContext (int windowSize=0, const std::string &selector="") |
Creates a Queue Peek Context, which is used to traverse the queue. More... | |
Protected Member Functions | |
nQueueReader (nQueue *pQueue, nQueueReaderContext *pContext) | |
Creates a reader for the specified queue using the given reader context. The reader will have its reader unique ID assigned implicitly. More... | |
nQueueReader (nQueue *pQueue, nQueueReaderContext *pContext, longlong readerUniqueId) | |
Creates a reader for the specified queue using the given reader context and reader unique identifier. Note: This constructor must only be used for asynchronous readers, which require special reader ID assignment, for all other cases use the constructor which implicitly assigns the reader unique identifier. More... | |
Protected Attributes | |
longlong | m_readerUniqueId |
An identifier that uniquely identifies the reader which performs this queue operation within the session. This will be paired with the connection id to uniquely identify the reader within the Universal Messaging server. Note: This should be considered final, it must be set during reader creation and not modified afterwards. More... | |
This class is the base class for all Queue Readers and provides a generic reader interface.
|
protected |
Creates a reader for the specified queue using the given reader context. The reader will have its reader unique ID assigned implicitly.
pQueue | The queue to create reader for. Must not be null. |
pContext | The reader context to use |
|
protected |
Creates a reader for the specified queue using the given reader context and reader unique identifier. Note: This constructor must only be used for asynchronous readers, which require special reader ID assignment, for all other cases use the constructor which implicitly assigns the reader unique identifier.
pQueue | The queue to create reader for. |
pContext | The reader context to use. |
readerUniqueId | The reader unique identifier to use for this reader. |
|
static |
Creates a Queue Peek Context, which is used to traverse the queue.
windowSize | The size of the window over the queue to uses |
selector | A message selector to be applied on the events received |
void com::pcbsys::nirvana::client::nQueueReader::destroyReader | ( | ) |
This call will release any outstanding resources on the server and close the reader.
Any future calls to this object will result in an nIllegalStateException being raised.
nUnexpectedResponseException | if the server returns a response that was not expected |
nSessionNotConnectedException | if the session is currently not connected to the server |
nRequestTimedOutException | if the request did not receive a response within the timeout period |
nSessionPausedException | The session is currently paused |
void com::pcbsys::nirvana::client::nQueueReader::destroyReaderLocally | ( | ) |
This call will close local reader resources but remain subscribed at the server Any future calls to this object will work unless destroyReader() is called.
nUnexpectedResponseException | if the server returns a response that was not expected |
nSessionNotConnectedException | if the session is currently not connected to the server |
nRequestTimedOutException | if the request did not receive a response within the timeout period |
bool com::pcbsys::nirvana::client::nQueueReader::hasConsumedEvents | ( | ) |
Method to see whether the reader has consumed any events.
For transactional readers, this is reset every time commit or rollback is called.
bool com::pcbsys::nirvana::client::nQueueReader::isClosed | ( | ) |
When a reader is closed, the physical subscription is closed at the server.
For Transactional readers, a close will rollback to the last committed event.
bool com::pcbsys::nirvana::client::nQueueReader::isClosedLocally | ( | ) |
A reader can be closed, but the physical subscription queue is not closed at the server.
For Transactional readers, a local close will not rollback to the last committed event.
nConsumeEvent** com::pcbsys::nirvana::client::nQueueReader::peek | ( | nQueuePeekContext * | pContext, |
int & | nEvent | ||
) |
Performs a non destructive read.
*pContext | Peek Context to use. Used when multiple calls required to traverse a queue |
nEvent | the length of the array |
nSecurityException | If the client is not authorized to perform this request |
nChannelNotFoundException | The queue was not found |
nSessionNotConnectedException | Client is not currently connected to the server |
nRequestTimedOutException | The server did not respond within the timeout |
nUnexpectedResponseException | The server responded with an unexpected response |
nIllegalArgumentException | Invalid parameters passed |
nSessionPausedException | The session is currently paused, please resume |
nIllegalStateException | The operation could not complete because of a session/connection error |
|
protected |
An identifier that uniquely identifies the reader which performs this queue operation within the session. This will be paired with the connection id to uniquely identify the reader within the Universal Messaging server. Note: This should be considered final, it must be set during reader creation and not modified afterwards.