Queue in C++
C++ Classes and Members
-
class DragonException : public std::exception
Public Functions
-
DragonException(dragonError_t err, std::string msg)
Encapsulates Dragon error and message.
Objects of this class are constructed and thrown when error conditions with Dragon Occur. Subclasses of this exception identify errors on a more granular level so they may be caught and dealt with using specific exception handling.
-
virtual ~DragonException()
The DragonException destructor.
Insures proper cleanup of the exception when it is no longer needed.
-
DragonException(dragonError_t err, std::string msg)
-
class DragonManagedQueueBuf : public std::streambuf
This provides a Managed Queue Stream Buffer.
This class provides a managed queue as a stream for sending and receiving data via a managed queue in the Dragon run-time. This class can be used to construct a stream, either an ostream or an istream for reading and writing data to/from a Dragon queue.
Public Functions
-
DragonManagedQueueBuf(std::string name, size_t buffer_size, size_t maxsize, bool joinable, dragonQueueAttr_t *queue_attr, dragonPolicy_t *policy)
Construct a Dragon Managed Queue streambuf.
This creates the buffer and the underlying managed queue instance.
- Parameters:
name – A unique name to be assigned to this stream buffer in the user’s application.
buffer_size – The size of the buffer to be allocated for reading/writing data.
maxsize – is the total capacity of the Queue.
joinable – is a flag whether or not the dragon_queue_task_done() and dragon_queue_join() calls function (these calls are not shown below yet).
queue_attr – is a pointer to Queue attributes or NULL to use default values.
policy – is a pointer to the Policy structure to use.
-
virtual ~DragonManagedQueueBuf()
Destructor for a DragonManagedQueueBuf.
This destroys/detaches from the underlying managed queue object.
-
DragonManagedQueueBuf(std::string name, size_t buffer_size, size_t maxsize, bool joinable, dragonQueueAttr_t *queue_attr, dragonPolicy_t *policy)
-
class DragonUnmanagedQueueBuf : public std::streambuf
This provides an Unmanaged Queue Stream Buffer.
This class provides a unmanaged queue as a stream for sending and receiving data via an unmanaged queue in the Dragon run-time. This class can be used to construct a stream, either an ostream or an istream for reading and writing data to/from a Dragon queue.
Public Functions
-
DragonUnmanagedQueueBuf(size_t buffer_size, dragonMemoryPoolDescr_t *pool, size_t maxsize, bool joinable, dragonQueueAttr_t *queue_attr, dragonPolicy_t *policy)
Construct a Dragon Unmanaged Queue streambuf.
This creates the buffer and the underlying unmanaged queue instance.
- Parameters:
buffer_size – The size of the buffer to be allocated for reading/writing data.
pool – is the Managed Memory Pool to allocate space for the Queue from.
maxsize – is the total capacity of the Queue.
joinable – is a flag whether or not the dragon_queue_task_done() and dragon_queue_join() calls function.
queue_attr – is a pointer to Queue attributes or NULL to use default values.
policy – is a pointer to the Policy structure to use, of which affinity and reference counting will be ignored.
-
DragonUnmanagedQueueBuf(std::string ch_ser, size_t buffer_size)
Construct a Dragon Unmanaged Queue streambuf.
This creates the buffer and the underlying unmanaged queue instance.
- Parameters:
ch_ser – A Dragon base64 encoded serialized descriptor to a channel.
buffer_size – The size of the buffer to be allocated for reading/writing data.
-
std::string serialize()
Obtain a serialized descriptor for the unmanaged queue buffer.
This returns a string which may be sent to another process for use in attaching to this unmanaged queue via the appropriate DragonUnmanagedQueueBuf constructor.
-
virtual ~DragonUnmanagedQueueBuf()
Destructor for a DragonManagedQueueBuf.
This destroys/detaches from the underlying managed queue object.
-
DragonUnmanagedQueueBuf(size_t buffer_size, dragonMemoryPoolDescr_t *pool, size_t maxsize, bool joinable, dragonQueueAttr_t *queue_attr, dragonPolicy_t *policy)