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

CascadeWormhole.h

Go to the documentation of this file.
00001 //
00002 // CascadeWormhole.h - header file for class CascadeWormhole
00003 //
00004 // Copyright (c) 2002, Roku, LLC.  All rights reserved.
00005 //
00008 
00009 #ifndef _ROKU_INCLUDE_CASCADE_INTERPROCESS_CASCADEWORMHOLE_H
00010 #define _ROKU_INCLUDE_CASCADE_INTERPROCESS_CASCADEWORMHOLE_H
00011 
00012 #include <cascade/interprocess/CascadeMessage.h>
00013 #include <cascade/interprocess/CascadeMessageDefs.h>
00014 
00143 class CascadeWormhole : public CascadeObject
00144 {
00145 public:
00146         CascadeWormhole();
00150         virtual ~CascadeWormhole();
00155 
00156 public: // wormhole public constants
00157     enum {
00158         kMaxName = 96,                  
00159         kMaxNameLen = kMaxName - 1      
00160     };
00161 
00162 public: // wormhole public functions    
00163     bool Create(const char * pWormholeURL);
00172     void Destroy();
00178     CascadeMessage * WaitForMessage(u32 nTimeoutMilliseconds = 0);
00188     bool PostMessage(const char * pWormholeURL, u32 nMessageID, void * pMessageData = NULL,  u32 nDataSize = 0);
00199     bool BroadcastMessage(const char * pBroadcastURL, u32 nMessageID, void * pMessageData = NULL,  u32 nDataSize = 0);
00211     bool SendMessage(const char * pWormholeURL, u32 nMessageID, void * pMessageData, u32 nDataSize, CascadeMessage *& pReplyMessageToSet);
00226     bool SendReply(u32 nReplyMessageID, void * pMessageData = NULL, u32 nDataSize = 0);
00242     typedef bool (WormholeEnumProc)(const char * pWormholeURL, void * pClientData);
00255     static bool EnumerateWormholes(const char * pWormholeURL, WormholeEnumProc * pEnumProc, void * pClientData);
00265     static bool DoesWormholeExist(const char * pWormholeURL);
00272 #ifndef DOXY_SKIP
00273     //#define _CW_USE_OLD_WORMHOLE_IMPL
00274     #ifdef _CW_USE_OLD_WORMHOLE_IMPL
00275     private:
00276         void * m_pWormholeInternal;
00277     #else
00278     private:
00279         class Hole;
00280         Hole * m_pHole;
00281     #endif
00282 #endif
00283 };
00284 
00285 #endif // #ifndef _ROKU_INCLUDE_CASCADE_INTERPROCESS_CASCADEWORMHOLE_H
00286 
00288 // LOG
00290 //  20-Dec-02   dwoodward       created
00291 //  20-Jan-03   dwoodward   1.0 STATUS: about 50% complete - needs refinement
00292 //                          and review
00293 //  25-Feb-03   dwoodward   cleared up ambiguity on valid duration of a reply message
00294 //                          by adding more comments to the SendMessage function
00295 //  25-Feb-03   dwoodward   added DoesWormholeExist()
00296 //  03-Feb-03   dwoodward   made EnumerateWormholes static
00297 //  23-Apr-03   dwoodward   increased kMaxName
00298 //  05-May-03   dwoodward   doxygenated

Generated on Sun Jul 24 14:27:17 2005 for Cascade Library by  doxygen 1.4.1