Files
pcas/src/libCom/osi/epicsMessageQueue.h
Andrew Johnson fbda9f3280 RCS keyword updates for Bazaar
Replaced $Id$ and $Header$ keywords with $Revision-Id$
Deleted $Log$ keywords and any log messages
2010-10-05 14:27:37 -05:00

103 lines
3.2 KiB
C++

/*************************************************************************\
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
* National Laboratory.
* Copyright (c) 2002 The Regents of the University of California, as
* Operator of Los Alamos National Laboratory.
* EPICS BASE Versions 3.13.7
* and higher are distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*
* $Revision-Id$
*
* Author W. Eric Norum
* norume@aps.anl.gov
* 630 252 4793
*/
/*
* Interthread message passing
*/
#ifndef epicsMessageQueueh
#define epicsMessageQueueh
#include "epicsAssert.h"
#include "shareLib.h"
typedef struct epicsMessageQueueOSD *epicsMessageQueueId;
#ifdef __cplusplus
#include "locationException.h"
class epicsShareClass epicsMessageQueue {
public:
epicsMessageQueue ( unsigned int capacity,
unsigned int maximumMessageSize );
~epicsMessageQueue ();
int trySend ( void *message, unsigned int messageSize );
int send ( void *message, unsigned int messageSize);
int send ( void *message, unsigned int messageSize, double timeout );
int tryReceive ( void *message, unsigned int size );
int receive ( void *message, unsigned int size );
int receive ( void *message, unsigned int size, double timeout );
void show ( unsigned int level = 0 );
unsigned int pending ();
private: /* Prevent compiler-generated member functions */
/* default constructor, copy constructor, assignment operator */
epicsMessageQueue();
epicsMessageQueue(const epicsMessageQueue &);
epicsMessageQueue& operator=(const epicsMessageQueue &);
epicsMessageQueueId id;
};
extern "C" {
#endif /*__cplusplus */
epicsShareFunc epicsMessageQueueId epicsShareAPI epicsMessageQueueCreate(
unsigned int capacity,
unsigned int maximumMessageSize);
epicsShareFunc void epicsShareAPI epicsMessageQueueDestroy(
epicsMessageQueueId id);
epicsShareFunc int epicsShareAPI epicsMessageQueueTrySend(
epicsMessageQueueId id,
void *message,
unsigned int messageSize);
epicsShareFunc int epicsShareAPI epicsMessageQueueSend(
epicsMessageQueueId id,
void *message,
unsigned int messageSize);
epicsShareFunc int epicsShareAPI epicsMessageQueueSendWithTimeout(
epicsMessageQueueId id,
void *message,
unsigned int messageSize,
double timeout);
epicsShareFunc int epicsShareAPI epicsMessageQueueTryReceive(
epicsMessageQueueId id,
void *message,
unsigned int size);
epicsShareFunc int epicsShareAPI epicsMessageQueueReceive(
epicsMessageQueueId id,
void *message,
unsigned int size);
epicsShareFunc int epicsShareAPI epicsMessageQueueReceiveWithTimeout(
epicsMessageQueueId id,
void *message,
unsigned int size,
double timeout);
epicsShareFunc int epicsShareAPI epicsMessageQueuePending(
epicsMessageQueueId id);
epicsShareFunc void epicsShareAPI epicsMessageQueueShow(
epicsMessageQueueId id,
int level);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#include "osdMessageQueue.h"
#endif /* epicsMessageQueueh */