home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / som / include / somdcprx.idl < prev    next >
Text File  |  1999-02-22  |  4KB  |  142 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. //#  @(#) 2.15.2.2 src/somd/somdcprx.idl, somd, som2.1 2/20/95 10:05:56 [7/30/96 14:45:44]
  14.  
  15.  
  16. // 
  17. //   This is the class that implements DSOM proxy objects in clients.
  18. // 
  19. //   This class is a subclass of SOMDObject.  It inherits the basic behavior
  20. //   (methods) of a CORBA object reference from that parent class.
  21. //   Thus, it "is a" SOMDObject.
  22. // 
  23. //   This class overrides the usual somDispatch methods with versions
  24. //   that build a DSOM Request for the invocation and dispatch it, remotely.
  25. //   It is intended that the implementation of this "generic" proxy class
  26. //   will be used to derive specific proxy classes via multiple inheritance.
  27. //   The new dispatch method is inherited from this client proxy class, while
  28. //   the desired interface--and language bindings--are inherited from the 
  29. //   target class (but no implementation).
  30. // 
  31. //   E.g.,
  32. //          SOMDClientProxy      Animal
  33. //                    \           /
  34. //                     \         / (interface only)
  35. //                      \       /
  36. //                   Animal__Proxy
  37. //
  38. //   Note that SOMDClientProxy is an instance of SOMDMetaProxy. 
  39.  
  40.  
  41. #ifndef somdcprx_idl
  42. #define somdcprx_idl
  43.  
  44. #include <somdobj.idl>
  45.  
  46. interface CommBinding;
  47. interface somdMemoryMgr;
  48.  
  49. interface SOMDClientProxy : SOMDObject
  50. {
  51.  
  52.   // To aid in distribution transparency, the following SOMObject methods
  53.   // are FORWARDED to the remote object:
  54.   //     somFree
  55.   //     somGetClass
  56.   //     somGetClassName
  57.   //     somDestruct    (unless the remote connection is no longer valid)
  58.   //     somDefaultInit (when the proxy has already been initialized)
  59.   //     all assignment operator and copy constructor methods
  60.   //        (requires that the "fromObj" parameter also be a proxy
  61.   //         that refers to an object in the same address space.
  62.   //
  63.   // The following additional methods are provided to explicitly direct
  64.   // method calls to the local proxy or to the remote object.
  65.  
  66.   void somdTargetFree();
  67.   // Forwards _somFree method call to the remote target object.
  68.  
  69.   SOMClass somdTargetGetClass();
  70.   // Forwards _somGetClass method call to the remote target object.
  71.  
  72.   string somdTargetGetClassName();
  73.   // Forwards _somGetClassName method call to the remote target object.
  74.  
  75.   void somdProxyFree();
  76.   // Performs _somFree method call on the local proxy object.
  77.  
  78.   SOMClass somdProxyGetClass();
  79.   // Performs _somGetClass method call on the local proxy object.
  80.  
  81.   string somdProxyGetClassName();
  82.   // Performs _somGetClassName method call on the local proxy object.
  83.  
  84.   void somdReleaseResources();
  85.   // Instructs the proxy to free any memory it owns for use by the client.
  86.  
  87.  
  88. #ifdef __SOMIDL__
  89.  
  90.   implementation
  91.   {
  92.  
  93.     releaseorder: somdTargetFree, somdTargetGetClass, 
  94.           somdTargetGetClassName,
  95.           somdProxyFree, somdProxyGetClass, 
  96.           somdProxyGetClassName,
  97.           set_binding, get_binding, reset_binding,
  98.           _get_ctx_seq, _set_ctx_seq, somdReleaseResources,
  99.           _get_memoryMgr;
  100.  
  101.   
  102.     //# Class Modifiers
  103.     callstyle = idl;
  104.     dllname = "somd.dll";
  105.     majorversion = 2;
  106.     minorversion = 1;
  107.   
  108.     //# Method Modifiers
  109.     create_request    : override;
  110.     create_request_args    : override;
  111.     is_proxy        : override;
  112.     release        : override;
  113.     somDispatch        : override;
  114.     somDispatchV    : override;
  115.     somDispatchL    : override;
  116.     somDispatchD    : override;
  117.     somDispatchA    : override;
  118.     somFree        : override;
  119.     somGetClass        : override;
  120.     somGetClassName    : override;
  121.     somDestruct        : override;
  122.     somDefaultInit    : override;
  123.     set_binding         : procedure;
  124.     get_binding         : procedure;
  125.     reset_binding       : procedure;
  126.     somDefaultVCopyInit : override;
  127.     somDefaultConstVCopyInit : override;
  128.     somDefaultCopyInit  : override;
  129.     somDefaultConstCopyInit : override;
  130.     somDefaultAssign    : override;
  131.     somDefaultConstAssign  : override;
  132.     somDefaultVAssign   : override;
  133.     somDefaultConstVAssign : override;
  134.  
  135.   };
  136.  
  137. #endif /* __SOMIDL__ */
  138.  
  139. };
  140.  
  141. #endif  /* somdcprx_idl */
  142.