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

VxWorks

开发平台:

C/C++

  1. /* RemoteOxid.cpp - COM/DCOM RemoteOxid class implementation */
  2. /* Copyright (c) 1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 02f,17dec01,nel  Add include symbol for diab.
  7. 02e,26jul01,dbs  remove obsolete code
  8. 02d,13jul01,dbs  fix up includes
  9. 02c,15feb00,dbs  move proxy/stub code out of this class
  10. 02b,07feb00,dbs  update struct-descs to latest NDR impl
  11. 02a,15sep99,dbs  adapt to NDR changes made for OPC support
  12. 01z,12aug99,dbs  comply with new NDR struct support
  13. 01y,02aug99,dbs  fix indirection when marshaling array of IIDs in
  14.                  RemQueryInterface()
  15. 01x,30jul99,dbs  tighten up type-safety of NDR types
  16. 01w,09jul99,dbs  implement ping functionality in SCM now
  17. 01v,08jul99,dbs  move address and other info into new class
  18. 01u,06jul99,aim  change from RpcBinding to RpcIfClient
  19. 01t,05jul99,dbs  use correct binding for ping, remove wierdness when
  20.                  combining vxcom_wcscpy and T2OLE in method
  21.  resolverAddressSet() 
  22. 01s,30jun99,dbs  remove unnecessary casts
  23. 01r,10jun99,dbs  remove op new and delete
  24. 01q,08jun99,dbs  remove use of mtmap
  25. 01p,07jun99,dbs  change GuidMap to mtmap
  26. 01o,03jun99,dbs  no return value from mutex lock
  27. 01n,03jun99,dbs  remove refs to comSyncLib
  28. 01m,28may99,dbs  implement Ping functionality
  29. 01l,20may99,dbs  fix handling of returned array-types
  30. 01k,18may99,dbs  change to new marshaling architecture
  31. 01j,10may99,dbs  simplify rpc-binding usage
  32. 01i,05may99,dbs  add update() method
  33. 01h,29apr99,dbs  fix -Wall warnings
  34. 01g,28apr99,dbs  use COM_MEM_ALLOC for all classes
  35. 01f,27apr99,dbs  use new allocation calls
  36. 01e,27apr99,dbs  add mem-pool to classes
  37. 01d,26apr99,aim  added TRACE_CALL
  38. 01c,22apr99,dbs  tidy up potential leaks
  39. 01b,22apr99,dbs  fix many calls to ndr_marshal_xxx()
  40. 01a,20apr99,dbs  created during Grand Renaming
  41. */
  42. /*
  43.   DESCRIPTION:
  44.   RemoteOxid -- 
  45. */
  46. #include "RemoteOxid.h"
  47. /* Include symbol for diab */
  48. extern "C" int include_vxdcom_RemoteOxid (void)
  49.     {
  50.     return 0;
  51.     }
  52. //////////////////////////////////////////////////////////////////////////
  53. //
  54. VxRemoteOxid::VxRemoteOxid 
  55.     (
  56.     OXID oxid,
  57.     REFIPID ipid,
  58.     const RpcStringBinding& oxidAddr
  59.     )
  60.       : m_dwRefCount (0),
  61. m_oxid (oxid),
  62. m_ipidRemUnk (ipid),
  63. m_stringBinding (oxidAddr)
  64.     {
  65.     }
  66. //////////////////////////////////////////////////////////////////////////
  67. //
  68. // VxRemoteOxid dtor -- checks to see if there are any OIDs to be
  69. // un-pinged. If so, it sends a final ComplexPing() to remove them
  70. // all...
  71. //
  72. VxRemoteOxid::~VxRemoteOxid ()
  73.     {
  74.     }
  75. //////////////////////////////////////////////////////////////////////////
  76. ULONG VxRemoteOxid::AddRef ()
  77.     {
  78.     return comSafeInc (&m_dwRefCount);
  79.     }
  80. //////////////////////////////////////////////////////////////////////////
  81. //
  82. ULONG VxRemoteOxid::Release ()
  83.     {
  84.     DWORD n = comSafeDec (&m_dwRefCount);
  85.     if (n == 0)
  86. delete this;
  87.     return n;
  88.     }