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

VxWorks

开发平台:

C/C++

  1. /* RemoteOxid.h - COM/DCOM RemoteOxid class definition */
  2. /* Copyright (c) 1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01u,26jul01,dbs  remove obsolete code
  7. 01t,13jul01,dbs  fix up includes
  8. 01s,15feb00,dbs  add dcomProxy.h to includes
  9. 01r,12jul99,dbs  add accessor to modify string-binding
  10. 01q,09jul99,dbs  implement ping functionality in SCM now
  11. 01p,08jul99,dbs  move address and other info into new class
  12. 01o,06jul99,aim  change from RpcBinding to RpcIfClient
  13. 01n,10jun99,dbs  remove inclusion of comNew.h
  14. 01m,08jun99,dbs  remove use of mtmap
  15. 01l,07jun99,dbs  change GuidMap to mtmap
  16. 01k,01jun99,dbs  make tick-count signed
  17. 01j,28may99,dbs  continue Ping implementation
  18. 01i,28may99,dbs  implement Ping functionality
  19. 01h,18may99,dbs  change to new marshaling architecture
  20. 01g,11may99,dbs  change name of ChannelBuffer.h to Remoting.h
  21. 01f,05may99,dbs  add update() method
  22. 01e,29apr99,dbs  fix -Wall warnings
  23. 01d,28apr99,dbs  make all classes allocate from same pool
  24. 01c,27apr99,dbs  add mem-pool to classes
  25. 01b,21apr99,dbs  add include for IRpcChannelBuffer
  26. 01a,20apr99,dbs  created during Grand Renaming
  27. */
  28. #ifndef __INCRemoteOxid_h
  29. #define __INCRemoteOxid_h
  30. #include "private/comMisc.h"
  31. #include "dcomProxy.h"
  32. #include "OxidResolver.h"
  33. #include "RpcStringBinding.h"
  34. #include "RemUnknown.h"
  35. #include "comObjLib.h"
  36. ///////////////////////////////////////////////////////////////////////////
  37. //
  38. // VxRemoteOxid -- records information about a remote Object
  39. // Exporter. It must re-use a StdProxy's connection in order to
  40. // process IRemUnknown methods, so each of those methods requires an
  41. // RpcIfClient with which to make the request.
  42. //
  43. class VxRemoteOxid
  44.     {
  45.   public:
  46.     
  47.     VxRemoteOxid
  48. (
  49. OXID oxid,
  50. REFIPID  ipidRemUnk,
  51. const RpcStringBinding& oxidAddr
  52. );
  53.     
  54.     virtual ~VxRemoteOxid ();
  55.     // Accessors...
  56.     OXID oxid () const
  57. { return m_oxid; }
  58.     IPID ipidRemUnknown () const
  59. { return m_ipidRemUnk; }
  60.     const RpcStringBinding& stringBinding () const
  61. { return m_stringBinding; }
  62.     // update members...
  63.     void update (REFIPID ipid, const RpcStringBinding& sb)
  64. { m_ipidRemUnk=ipid; m_stringBinding=sb; }
  65.     
  66.     // ref-counting methods
  67.     ULONG AddRef ();
  68.     ULONG Release ();
  69.   private:
  70.     VxMutex m_mutex;
  71.     LONG                m_dwRefCount;
  72.     OXID m_oxid;
  73.     IPID m_ipidRemUnk;
  74.     RpcStringBinding m_stringBinding;
  75.     };
  76. typedef CComPtr<VxRemoteOxid> SPRemoteOxid;
  77. #endif