//
//   COMPONENT_NAME: somx
//
//   ORIGINS: 27
//
//
//   25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1996  
//   All Rights Reserved
//   Licensed Materials - Property of IBM
//   US Government Users Restricted Rights - Use, duplication or
//   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
//
//   @(#) 2.11.1.1 src/somples.os2/somd/c/proxy/barproxy.idl, somples.somd, som3.0 12/3/96 10:39:33 [12/4/96 15:10:03]

/*
 *
 * DISCLAIMER OF WARRANTIES.
 * The following [enclosed] code is sample code created by IBM
 * Corporation. This sample code is not part of any standard or IBM
 * product and is provided to you solely for the purpose of assisting
 * you in the development of your applications.  The code is provided
 * "AS IS". IBM MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
 * NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE, REGARDING THE FUNCTION OR PERFORMANCE OF
 * THIS CODE.  IBM shall not be liable for any damages arising out of
 * your use of the sample code, even if they have been advised of the
 * possibility of such damages.
 *
 * DISTRIBUTION.
 * This sample code can be freely distributed, copied, altered, and
 * incorporated into other software, provided that it bears the above
 * Copyright notice and DISCLAIMER intact.
 */


#include <somdcprx.idl>
#include <bar.idl>

interface Bar__Proxy : SOMDClientProxy, Bar
{
  /* normally one would use the "abstractparents" IDL modifier to indicate
   * that abstract inheritance should be used for the target class
   * (e.g., Bar) of the user-defined proxy class, but in this
   * sample, abstract inheritance is not desired because we want the
   * proxy class (Bar__Proxy) to inherit the instance data of the Bar
   * class to permit caching of instance data in the proxy.
   */

  implementation
  {

     dllname="objs.dll";

     _get_attribute_long: override;
     _set_attribute_long: override;

    /* The method1 doesn't need to be overridden, it would be
     * forwarded automatically. In here, we do it to illustrate
     * how to explicitly cause a method to be forwarded.
     */

     method1: override;
     memory_management = corba;
     _get_attribute_long: object_owns_result;

  };
};

