//
//   COMPONENT_NAME: somx
//
//   ORIGINS: 27
//
//
//   10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
//   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.
//
/* @(#) /63 1.6 10/6/94 14:24:28 [11/1/94 21:02:51] */

/*
 *
 * 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.
 */


#ifndef danimal_idl
#define danimal_idl

#include <somobj.idl>

interface dLocation;

interface dAnimal : SOMObject
{
  attribute string name;
  // Name of animal.

  attribute string type;
  // Type of animal.

  attribute string food;
  // Food animal likes to eat.

  attribute dLocation loc;
  // Object with city and state where animal lives. 

  attribute string buff;
  // Work area for display method.

  string display();
  // Returns description of animal.

#ifdef __SOMIDL__
  implementation {
    releaseorder: _get_name, _set_name, 
                  _get_type, _set_type, 
                  _get_food, _set_food, 
                  _get_loc, _set_loc, 
		  _get_buff, _set_buff,
                  display;

    //# Class Modifiers
    callstyle = idl;
    dllname = "danimal.dll";

    //# Attribute Modifiers
    name: noset;
    type: noset;
    food: noset;
    buff: noset;

    //# Method Modifiers
     somDefaultInit: override;
     somDestruct: override;
   //# parameter memory management is per CORBA except as indicated otherwise
       memory_management = corba;
  //# client should free the result of the following methods:
  display: object_owns_result;
  _get_name: object_owns_result;
  _get_type: object_owns_result;
  _get_food: object_owns_result;
  _get_buff: object_owns_result;
  _set_name: caller_owns_parameters = "name";
  _set_type: caller_owns_parameters = "type";
  _set_food: caller_owns_parameters = "food";
  _set_buff: caller_owns_parameters = "buff";
  };
#endif /* __SOMIDL__ */

};
#endif  /* danimal_idl */
