gml_SharedMessageRing.h

Go to the documentation of this file.
00001 /**
00002  *  @file gml_SharedMessageRing.h --
00003  *
00004  *    Shared message rings.
00005  *
00006  *  Copyright (c) 2004 CLIPS-IMAG
00007  *
00008  *  See the file "gml_LicenseTerms.txt" for information on usage and redistribution
00009  *  of this file, and for a DISCLAIMER OF ALL WARRANTIES.
00010  *
00011  *  Created on December 12, 2004 (JL).
00012  */
00013 #ifndef __GML_SHARED_MESSAGE_RING__
00014 #define __GML_SHARED_MESSAGE_RING__
00015 
00016 #include "gml/base/gml_Types.h"
00017 #include "gml/base/gml_Errors.h"
00018 
00019 typedef struct gml_TMessageRing_* gml_TMessageRing;
00020 
00021 
00022 /// retreive oldest message from queue when reading (default)
00023 #define GML_MESSAGERING_OLDEST    0000
00024 
00025 /// retreive newest message from queue when reading
00026 #define GML_MESSAGERING_LATEST    0001
00027 
00028 /// block when reading messages from queue
00029 #define GML_MESSAGERING_BLOCKING  0002
00030 
00031 /// drop old messages if queue is full when writing
00032 #define GML_MESSAGERING_DROP      0004
00033 
00034 
00035 /// returned when no new message is available
00036 extern gml_TError gml_gMessageRing_NoNewMessage;
00037 
00038 
00039 
00040 GML_EXTERN_C
00041 gml_TError gml_MessageRing_Create         (gml_TMessageRing* ring, UInt32 bytes);
00042 
00043 GML_EXTERN_C
00044 gml_TError gml_MessageRing_Open           (gml_TMessageRing* ring, UInt32 name);
00045 
00046 GML_EXTERN_C
00047 gml_TError gml_MessageRing_Close          (gml_TMessageRing ring);
00048 
00049 GML_EXTERN_C
00050 gml_TError gml_MessageRing_GetName        (gml_TMessageRing ring, UInt32* name);
00051 
00052 GML_EXTERN_C
00053 gml_TError gml_MessageRing_WriteMessageAcquire (gml_TMessageRing ring, UInt32 flags, UInt32 size, UInt8** payload);
00054 
00055 GML_EXTERN_C
00056 gml_TError gml_MessageRing_WriteMessageRelease (gml_TMessageRing ring);
00057 
00058 GML_EXTERN_C
00059 gml_TError gml_MessageRing_ReadMessageAcquire (gml_TMessageRing ring, UInt32 flags, UInt32* size, UInt8** payload);
00060 
00061 GML_EXTERN_C
00062 gml_TError gml_MessageRing_ReadMessageRelease (gml_TMessageRing ring);
00063 
00064 
00065 #endif /* __GML_SHARED_MESSAGE_RING__ */
Generated on Tue Jun 12 14:03:27 2007 for gml by Doxygen 1.5.2.