Main Page | Class Hierarchy | Class List | File List | Class Members

RIPCPrimitive.h

00001 #ifndef __RIPC_PRIMITIVE_H__
00002 #define __RIPC_PRIMITIVE_H__
00003 
00004 #include "RIPCObject.h"
00005 
00006 class RIPCSession;
00007 
00013 class RIPC_DLL_ENTRY RIPCPrimitive { 
00014   public:
00018     enum RIPCPrimitiveType { 
00019         RIPC_MUTEX, 
00020         RIPC_EVENT, 
00021         RIPC_SEMAPHORE, 
00022         RIPC_BARRIER, 
00023         RIPC_LOCK, 
00024         RIPC_SHARED_MEMORY, 
00025         RIPC_QUEUE 
00026     };
00027 
00028     enum RIPCRanks { 
00029         DEFAULT_RANK = 0
00030     };
00031 
00036     virtual RIPCPrimitiveType getType() = 0;
00037 
00042     char const* getTypeName(); 
00043 
00050     virtual char const* getName() = 0;
00051     
00059     virtual bool alreadyExists() = 0;
00060     
00066     void waitFor() { 
00067         priorityWait(DEFAULT_RANK);
00068     }
00069 
00077     bool waitFor(unsigned timeout) { 
00078         return priorityWait(DEFAULT_RANK, timeout);
00079     }
00080 
00089     virtual void priorityWait(int rank) = 0;
00090 
00102     virtual bool priorityWait(int rank, unsigned timeout) = 0;
00103 
00109     virtual void reset() = 0;
00110 
00115     virtual void close() = 0;
00116 
00121     virtual void* allocate(size_t size); 
00122 
00127     virtual void deallocate(void* obj, size_t size=0);
00128 
00129     static void deallocator(RIPCObject const& objDesc);
00130 
00131     virtual ~RIPCPrimitive() {}
00132 };
00133 
00134 #endif    
00135 

Generated on Wed Nov 26 14:58:18 2003 for RIPC by doxygen 1.3.5