![]() |
This is Unofficial EPICS BASE Doxygen Site
|
A C++ and a C facility for communication between threads. More...
Go to the source code of this file.
Typedefs | |
typedef struct epicsMessageQueueOSD * | epicsMessageQueueId |
Functions | |
LIBCOM_API epicsMessageQueueId epicsStdCall | epicsMessageQueueCreate (unsigned int capacity, unsigned int maximumMessageSize) |
Create a message queue. More... | |
LIBCOM_API void epicsStdCall | epicsMessageQueueDestroy (epicsMessageQueueId id) |
Destroy a message queue, release all its memory. More... | |
LIBCOM_API int epicsStdCall | epicsMessageQueueTrySend (epicsMessageQueueId id, void *message, unsigned int messageSize) |
Try to send a message. More... | |
LIBCOM_API int epicsStdCall | epicsMessageQueueSend (epicsMessageQueueId id, void *message, unsigned int messageSize) |
Send a message. More... | |
LIBCOM_API int epicsStdCall | epicsMessageQueueSendWithTimeout (epicsMessageQueueId id, void *message, unsigned int messageSize, double timeout) |
Send a message or timeout. More... | |
LIBCOM_API int epicsStdCall | epicsMessageQueueTryReceive (epicsMessageQueueId id, void *message, unsigned int size) |
Try to receive a message. More... | |
LIBCOM_API int epicsStdCall | epicsMessageQueueReceive (epicsMessageQueueId id, void *message, unsigned int size) |
Fetch the next message on the queue. More... | |
LIBCOM_API int epicsStdCall | epicsMessageQueueReceiveWithTimeout (epicsMessageQueueId id, void *message, unsigned int size, double timeout) |
Wait for a message to be queued. More... | |
LIBCOM_API int epicsStdCall | epicsMessageQueuePending (epicsMessageQueueId id) |
How many messages are queued. More... | |
LIBCOM_API void epicsStdCall | epicsMessageQueueShow (epicsMessageQueueId id, int level) |
Displays some information about the message queue. More... | |
A C++ and a C facility for communication between threads.
Each C function corresponds to one of the C++ methods.
Definition in file epicsMessageQueue.h.
typedef struct epicsMessageQueueOSD* epicsMessageQueueId |
Definition at line 26 of file epicsMessageQueue.h.
LIBCOM_API epicsMessageQueueId epicsStdCall epicsMessageQueueCreate | ( | unsigned int | capacity, |
unsigned int | maximumMessageSize | ||
) |
Create a message queue.
capacity | Maximum number of messages to queue |
maximumMessageSize | Number of bytes of the largest message that may be queued |
Definition at line 69 of file osdMessageQueue.cpp.
LIBCOM_API void epicsStdCall epicsMessageQueueDestroy | ( | epicsMessageQueueId | id | ) |
Destroy a message queue, release all its memory.
Definition at line 117 of file osdMessageQueue.cpp.
LIBCOM_API int epicsStdCall epicsMessageQueuePending | ( | epicsMessageQueueId | id | ) |
How many messages are queued.
id | Message queue identifier. |
Definition at line 398 of file osdMessageQueue.cpp.
LIBCOM_API int epicsStdCall epicsMessageQueueReceive | ( | epicsMessageQueueId | id, |
void * | message, | ||
unsigned int | size | ||
) |
Fetch the next message on the queue.
Wait for a message to be sent if the queue is empty, then move the first message queued to the specified location.
If the received message is larger than the specified message size the implementation may either return -1, or truncate the message. It is most efficient if the messageBufferSize is equal to the maximumMessageSize with which the message queue was created.
Definition at line 384 of file osdMessageQueue.cpp.
LIBCOM_API int epicsStdCall epicsMessageQueueReceiveWithTimeout | ( | epicsMessageQueueId | id, |
void * | message, | ||
unsigned int | size, | ||
double | timeout | ||
) |
Wait for a message to be queued.
Wait up to timeout
seconds for a message to be sent if the queue is empty, then move the first message to the specified location.
If the received message is larger than the specified message buffer size the implementation may either return -1, or truncate the message. It is most efficient if the messageBufferSize is equal to the maximumMessageSize with which the message queue was created.
Definition at line 391 of file osdMessageQueue.cpp.
LIBCOM_API int epicsStdCall epicsMessageQueueSend | ( | epicsMessageQueueId | id, |
void * | message, | ||
unsigned int | messageSize | ||
) |
Send a message.
Definition at line 263 of file osdMessageQueue.cpp.
LIBCOM_API int epicsStdCall epicsMessageQueueSendWithTimeout | ( | epicsMessageQueueId | id, |
void * | message, | ||
unsigned int | messageSize, | ||
double | timeout | ||
) |
Send a message or timeout.
Definition at line 270 of file osdMessageQueue.cpp.
LIBCOM_API void epicsStdCall epicsMessageQueueShow | ( | epicsMessageQueueId | id, |
int | level | ||
) |
Displays some information about the message queue.
id | Message queue identifier. |
level | Controls the amount of information displayed. |
Definition at line 417 of file osdMessageQueue.cpp.
LIBCOM_API int epicsStdCall epicsMessageQueueTryReceive | ( | epicsMessageQueueId | id, |
void * | message, | ||
unsigned int | size | ||
) |
Try to receive a message.
If the queue holds at least one message, the first message on the queue is moved to the specified location and the length of that message is returned.
If the received message is larger than the specified message size the implementation may either return -1, or truncate the message. It is most efficient if the messageBufferSize is equal to the maximumMessageSize with which the message queue was created.
Definition at line 377 of file osdMessageQueue.cpp.
LIBCOM_API int epicsStdCall epicsMessageQueueTrySend | ( | epicsMessageQueueId | id, |
void * | message, | ||
unsigned int | messageSize | ||
) |
Try to send a message.
Definition at line 256 of file osdMessageQueue.cpp.