DceDispatchTable.h
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* DceDispatchTable.h - VxDCOM DceDispatchTable class definition */
  2. /* Copyright (c) 1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01f,13jul01,dbs  fix includes
  7. 01e,20sep00,nel  Add REFIID parameter to interfaceInfoGet method.
  8. 01d,27jul99,drm  Returning CLSID from interfaceInfoGet().
  9. 01c,03jun99,dbs  no return value from mutex lock
  10. 01b,03jun99,dbs  remove refs to comSyncLib
  11. 01a,02jun99,dbs  created
  12. */
  13. #ifndef __INCDceDispatchTable_h
  14. #define __INCDceDispatchTable_h
  15. #include "RpcDispatchTable.h" // base class
  16. #include "private/comStl.h"             // STL containers
  17. #include "private/comMisc.h"            // mutex class
  18. ////////////////////////////////////////////////////////////////////////////
  19. //
  20. // DceDispatchTable -- this class implements a subclass of
  21. // RpcDispatchTable which records all exported DCE interfaces...
  22. //
  23. class DceDispatchTable : public RpcDispatchTable
  24.     {
  25.     typedef STL_MAP(IID, VXDCOM_STUB_DISPTBL*) DISPMAP;
  26.   public:
  27.     DceDispatchTable () {}
  28.     virtual ~DceDispatchTable () {}
  29.     // methods inherited from RpcDispatchTable base-class, to look-up
  30.     // interface IDs, and interface pointers
  31.     bool    supportsInterface (REFIID riid);
  32.     HRESULT interfaceInfoGet
  33. (
  34. REFIID      riid,
  35. REFIPID /*ripid*/,
  36. ULONG methodNum,
  37. IUnknown** ppunk,
  38. PFN_ORPC_STUB* ppfn,
  39.         CLSID & classid
  40. );
  41.     // method to register DCE RPC interface with stub dispatch-table
  42.     HRESULT dceInterfaceRegister
  43. (
  44. REFIID riid,
  45. const VXDCOM_STUB_DISPTBL* ptbl
  46. );
  47.     
  48.     void lock () { m_mutex.lock (); }
  49.     void unlock () { m_mutex.unlock (); }
  50.     
  51.   private:
  52.     VxMutex m_mutex; // for task safety
  53.     DISPMAP m_dispmap; // dispatch table map
  54.     IID m_iid; // most recent IID
  55.     };
  56. #endif /*  __INCDceDispatchTable_h */