home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warptlk3.zip / TOOLKIT / SOM / INCLUDE / SOMDCPRX.IDL < prev    next >
Text File  |  1995-08-24  |  4KB  |  100 lines

  1. //
  2. //   COMPONENT_NAME: somd
  3. //
  4. //   ORIGINS: 27
  5. //
  6. //
  7. //   10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
  8. //   All Rights Reserved
  9. //   Licensed Materials - Property of IBM
  10. //   US Government Users Restricted Rights - Use, duplication or
  11. //   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  12. //
  13. // 
  14. //   This is the class that implements DSOM proxy objects in clients.
  15. // 
  16. //   This class is a subclass of SOMDObject.  It inherits the basic behavior
  17. //   (methods) of a CORBA object reference from that parent class.
  18. //   Thus, it "is a" SOMDObject.
  19. // 
  20. //   This class overrides the usual somDispatch methods with versions
  21. //   that build a DSOM Request for the invocation and dispatch it, remotely.
  22. //   It is intended that the implementation of this "generic" proxy class
  23. //   will be used to derive specific proxy classes via multiple inheritance.
  24. //   The new dispatch method is inherited from this client proxy class, while
  25. //   the desired interface--and language bindings--are inherited from the 
  26. //   target class (but no implementation).
  27. // 
  28. //   E.g.,
  29. //          SOMDClientProxy      Animal
  30. //                    \           /
  31. //                     \         / (interface only)
  32. //                      \       /
  33. //                   Animal__Proxy
  34. //
  35. //   Note that SOMDClientProxy is an instance of SOMDMetaProxy. 
  36. #ifndef somdcprx_idl
  37. #define somdcprx_idl
  38. #include <somdobj.idl>
  39. interface CommBinding;
  40. interface somdMemoryMgr;
  41. interface SOMDClientProxy : SOMDObject
  42. {
  43.   // To aid in distribution transparency, the following SOMObject methods
  44.   // are FORWARDED to the remote object:
  45.   //     somFree
  46.   //     somGetClass
  47.   //     somGetClassName
  48.   //
  49.   // The following additional methods are provided to explicitly direct
  50.   // method calls to the local proxy or to the remote object.
  51.   void somdTargetFree();
  52.   // Forwards _somFree method call to the remote target object.
  53.   SOMClass somdTargetGetClass();
  54.   // Forwards _somGetClass method call to the remote target object.
  55.   string somdTargetGetClassName();
  56.   // Forwards _somGetClassName method call to the remote target object.
  57.   void somdProxyFree();
  58.   // Performs _somFree method call on the local proxy object.
  59.   SOMClass somdProxyGetClass();
  60.   // Performs _somGetClass method call on the local proxy object.
  61.   string somdProxyGetClassName();
  62.   // Performs _somGetClassName method call on the local proxy object.
  63.   void somdReleaseResources();
  64.   // Instructs the proxy to free any memory it owns for use by the client.
  65. #ifdef __SOMIDL__
  66.   implementation
  67.   {
  68.     releaseorder: somdTargetFree, somdTargetGetClass, 
  69.           somdTargetGetClassName,
  70.           somdProxyFree, somdProxyGetClass, 
  71.           somdProxyGetClassName,
  72.           set_binding, get_binding, reset_binding,
  73.           _get_ctx_seq, _set_ctx_seq, somdReleaseResources,
  74.           _get_memoryMgr;
  75.     callstyle = idl;
  76.     dllname = "somd.dll";
  77.     majorversion = 2;
  78.     minorversion = 1;
  79.     create_request    : override;
  80.     create_request_args    : override;
  81.     is_proxy        : override;
  82.     release        : override;
  83.     somDispatch        : override;
  84.     somDispatchV    : override;
  85.     somDispatchL    : override;
  86.     somDispatchD    : override;
  87.     somDispatchA    : override;
  88.     somFree        : override;
  89.     somGetClass        : override;
  90.     somGetClassName    : override;
  91.     somDestruct        : override;
  92.     somDefaultInit    : override;
  93.     set_binding         : procedure;
  94.     get_binding         : procedure;
  95.     reset_binding       : procedure;
  96.   };
  97. #endif /* __SOMIDL__ */
  98. };
  99. #endif  /* somdcprx_idl */
  100.