home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / som30tk.zip / som30os2.zip / include / somdcprx.idl < prev    next >
Text File  |  1996-12-24  |  4KB  |  123 lines

  1. /*
  2.  *    @(#) 2.15.1.38 src/somd/somdcprx.idl, somd, som3.0 12/4/96 00:28:16 [12/24/96 07:39:35]
  3.  */
  4.  
  5. //
  6. //   COMPONENT_NAME: somd
  7. //
  8. //   ORIGINS: 27
  9. //
  10. //    25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1994,1996 
  11. //   All Rights Reserved
  12. //   Licensed Materials - Property of IBM
  13. //   US Government Users Restricted Rights - Use, duplication or
  14. //   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  15. //
  16.  
  17. //#  SOMDClientProxy is a PUBLIC class derived from
  18. //#  SOMMProxyForObject and SOMObject.
  19. //
  20. //  This class implements DSOM client proxy objects.  It provides a 
  21. //  special implementation of sommProxyDispatch which uses the DSOM
  22. //  communications framework to dispatch the method to the target object.
  23. //  It is intended that this "generic" proxy class will be used to derive
  24. //  specific proxy classes via multiple inheritance.  This new dispatch
  25. //  method is inherited from this proxy class while the desired interface
  26. //  is inherited from the target class.
  27. //  E.g.,
  28. //            SOMDClientProxy   Animal
  29. //                    \           /
  30. //                     \         / (interface only)
  31. //                      \       /
  32. //                   Animal__Proxy
  33. //
  34.  
  35.  
  36. #ifndef somdcprx_idl
  37. #define somdcprx_idl
  38.  
  39. #include <somobj.idl>
  40.  
  41. #include <somproxy.idl>
  42. #include <somdobj.idl>
  43.  
  44.  
  45. interface SOMDClientProxy: SOMMProxyForObject, SOMDObject
  46. {
  47.   void somdTargetFree();
  48.   // Forwards _somFree method call to the remote target object.
  49.  
  50.   SOMClass somdTargetGetClass();
  51.   // Forwards _somGetClass method call to the remote target object.
  52.   // Returns a pointer to the target's class object.
  53.  
  54.   string somdTargetGetClassName();
  55.   // Forwards _somGetClassName method call to the remote target object.
  56.   // Returns the class name of the target object.
  57.  
  58.   void somdProxyFree();
  59.   // Performs _somFree method call on the local proxy object.
  60.  
  61.   SOMClass somdProxyGetClass();
  62.   // Performs _somGetClass method call on the local proxy object.
  63.   // Returns a pointer to the proxy's class object.
  64.  
  65.   string somdProxyGetClassName();
  66.   // Performs _somGetClassName method call on the local proxy object.
  67.   // Returns the class name of the proxy object.
  68.  
  69.   void somdReleaseResources();
  70.   // Instructs the proxy to free any memory it owns for use by the client.
  71.  
  72.  
  73. #ifdef __SOMIDL__
  74.  
  75.   implementation
  76.   {
  77.  
  78.     releaseorder: somdTargetFree, somdTargetGetClass, somdTargetGetClassName,
  79.           somdProxyFree, somdProxyGetClass, somdProxyGetClassName,
  80.           unused1, unused2, unused3,
  81.           unused4, unused5, somdReleaseResources,
  82.           private1, private2, private3,
  83.           private4, private5;
  84.   
  85.     //# Class Modifiers
  86.     callstyle = idl;
  87.     dllname = "somd.dll";
  88.     majorversion = 2;
  89.     minorversion = 2;
  90.   
  91.     //# SOMObject overrides
  92.     create_request           : override;
  93.     create_request_args         : override;
  94.     duplicate                : override;
  95.     is_proxy             : override;
  96.     release             : override;
  97.     somDefaultInit           : override;
  98.     somDestruct             : override;
  99.     somClassDispatch         : override;
  100.     somDumpSelf              : override;
  101.     somDumpSelfInt           : override;
  102.     somFree             : override;
  103.     somGetClass              : override;
  104.     somGetClassName          : override;
  105.     somPrintSelf             : override;
  106.  
  107.     //# SOMMProxyForObject overrides
  108.     sommProxyDispatch        : override;
  109.  
  110.     //# SOMDObject overrides
  111.     is_SOM_ref             : override;
  112.     is_constant             : override;
  113.     _get_type_id             : override;
  114.     _set_type_id             : override;
  115.  
  116.   };
  117.  
  118. #endif /* __SOMIDL__ */
  119.  
  120. };
  121.  
  122. #endif  /* somdcprx_idl */
  123.