13 #include <vlutil/vlShmPool.h>
15 namespace MAKVrExchange
19 struct DtBucketHeader;
39 static const unsigned int theMaxSubscribers = 256;
62 virtual bool isEmpty();
65 virtual bool isSubscribed( DtU8 subscriberId )
const;
69 virtual DtU32 subscriberDrops( DtU8 subscriberId )
const;
76 virtual void sendMessage(
const void* message,
unsigned int size,
77 bool global =
false );
82 virtual void* message(
unsigned int* outSize = 0 );
89 virtual void unsubscribe( DtU8
id );
96 void subscribe( DtU8
id );
101 virtual void resetQueue( DtU32 numberOfBuckets, DtU32 payloadSize );
104 virtual std::ostream& printDataToStream( std::ostream& str )
const;
109 static unsigned int poolSize( DtU32 numberOfBuckets, DtU32 payloadSize );
118 DtU32 numberOfBuckets()
const;
121 DtU32 payloadSize()
const;
125 virtual char* payloadInBucket(
unsigned int bucketNum )
const;
128 virtual DtBucketHeader* bucketHeader(
unsigned int bucketNum )
const;
131 virtual int usedBucketCount()
const;
DtString myShmName
Definition: smSubscribableMessageQueue.h:145
This is an abstract base class presenting an interface for a simple message queue.
Definition: messageQueue.h:22
#define DT_DLL_LIBPORTAL
Definition: include/portal/dllExport.h:20
Implements a message queue for multiple subscribers.
Definition: smSubscribableMessageQueue.h:34
std::vector< char > myReadBuffer
Definition: smSubscribableMessageQueue.h:143
static unsigned long theLockFailureTimeoutMs
The timeout for lock attempts (in seconds).
Definition: smSubscribableMessageQueue.h:43
DtSharedMemoryPoolClient * myShmPool
Definition: smSubscribableMessageQueue.h:147
DtU8 mySubscriberId
Definition: smSubscribableMessageQueue.h:144
Contains the DtMessageQueue class declaration.