20 #ifndef epicsMessageQueueh 21 #define epicsMessageQueueh 24 #include "libComAPI.h" 48 class LIBCOM_API epicsMessageQueue {
57 epicsMessageQueue (
unsigned int capacity,
58 unsigned int maximumMessageSize );
63 ~epicsMessageQueue ();
74 int trySend (
void *message,
unsigned int messageSize );
83 int send (
void *message,
unsigned int messageSize );
93 int send (
void *message,
unsigned int messageSize,
double timeout );
109 int tryReceive (
void *message,
unsigned int size );
124 int receive (
void *message,
unsigned int size );
140 int receive (
void *message,
unsigned int size,
double timeout );
146 void show (
unsigned int level = 0 );
152 unsigned int pending ();
160 epicsMessageQueue(
const epicsMessageQueue &);
161 epicsMessageQueue& operator=(
const epicsMessageQueue &);
163 epicsMessageQueueId id;
177 unsigned int capacity,
178 unsigned int maximumMessageSize);
184 epicsMessageQueueId
id);
196 epicsMessageQueueId
id,
198 unsigned int messageSize);
208 epicsMessageQueueId
id,
210 unsigned int messageSize);
221 epicsMessageQueueId
id,
223 unsigned int messageSize,
242 epicsMessageQueueId
id,
261 epicsMessageQueueId
id,
281 epicsMessageQueueId
id,
292 epicsMessageQueueId
id);
300 epicsMessageQueueId
id,
307 #include "osdMessageQueue.h"
An EPICS-specific replacement for ANSI C's assert.
LIBCOM_API int epicsStdCall epicsMessageQueueTrySend(epicsMessageQueueId id, void *message, unsigned int messageSize)
Try to send a message.
LIBCOM_API epicsMessageQueueId epicsStdCall epicsMessageQueueCreate(unsigned int capacity, unsigned int maximumMessageSize)
Create a message queue.
struct epicsMessageQueueOSD * epicsMessageQueueId
LIBCOM_API void epicsStdCall epicsMessageQueueShow(epicsMessageQueueId id, int level)
Displays some information about the message queue.
LIBCOM_API int epicsStdCall epicsMessageQueueReceiveWithTimeout(epicsMessageQueueId id, void *message, unsigned int size, double timeout)
Wait for a message to be queued.
LIBCOM_API void epicsStdCall epicsMessageQueueDestroy(epicsMessageQueueId id)
Destroy a message queue, release all its memory.
LIBCOM_API int epicsStdCall epicsMessageQueueSendWithTimeout(epicsMessageQueueId id, void *message, unsigned int messageSize, double timeout)
Send a message or timeout.
LIBCOM_API int epicsStdCall epicsMessageQueueReceive(epicsMessageQueueId id, void *message, unsigned int size)
Fetch the next message on the queue.
LIBCOM_API int epicsStdCall epicsMessageQueuePending(epicsMessageQueueId id)
How many messages are queued.
LIBCOM_API int epicsStdCall epicsMessageQueueSend(epicsMessageQueueId id, void *message, unsigned int messageSize)
Send a message.
LIBCOM_API int epicsStdCall epicsMessageQueueTryReceive(epicsMessageQueueId id, void *message, unsigned int size)
Try to receive a message.