StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
msgQNLib.h
1 #ifndef _MSG_QN_LIB_H_
2 #define _MSG_QN_LIB_H_
3 
4 #define MSG_Q_DIR "/tmp"
5 #define MSG_Q_MAXQUEUES 256
6 
7 
8 #define WAIT_FOREVER (-1)
9 #define NO_WAIT 0
10 #define S_objLib_OBJ_TIMEOUT EAGAIN
11 
12 
13 #define MSG_Q_LOCK_NONE 0
14 #define MSG_Q_LOCK 1
15 #define MSG_Q_LOCK_EXPECT 2
16 
17 
18 #define MSG_Q_TIMEOUT (-1)
19 #define MSG_Q_ERROR (-2) // OS-specific error i.e. write returns -1
20 #define MSG_Q_NOTASK (-3) // "no task present" error
21 
22 struct msgQNStruct {
23  int desc ;
24  int len ;
25  int locked ;
26  int task ;
27 } ;
28 
29 
30 #define MSG_Q_ID int
31 
32 
33 
34 extern MSG_Q_ID msgQNCreate(int task, int msglen, int lock = MSG_Q_LOCK_NONE) ;
35 extern int msgQNSend(MSG_Q_ID task, char *what, int size, int timeout = WAIT_FOREVER, int prio = 0) ;
36 extern int msgQNReceive(MSG_Q_ID task, char *where, int size, int timeout = WAIT_FOREVER) ;
37 extern int msgQNDelete(MSG_Q_ID task) ;
38 extern int msgQNLocking(MSG_Q_ID task, int lock) ;
39 extern int msgQNSize(MSG_Q_ID task, int size) ;
40 extern int msgQNCheck(MSG_Q_ID task) ;
41 
42 #endif