
/*
 * This file was generated by the SOM Compiler.
 * FileName: animals.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.19
 *     SOM Emitter emith.dll: 2.31.1.64
 */

#ifndef SOM_Module_animals_Animals_defined
#define SOM_Module_animals_Animals_defined 1

/*
 * The SOM_STRICT_IDL macro means that we can ignore stars
 * in our declarations of objects.
 */
#define SOM_STRICT_IDL 1

#include <som.h>

/*
 * Start of bindings for IDL types
 */

#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef Animals_M_Animal
    #define Animals_M_Animal SOMObject
#endif /* Animals_M_Animal */
#ifndef Animals_Kennel
    #define Animals_Kennel SOMObject
#endif /* Animals_Kennel */
#ifndef Animals_M_Animal
    #define Animals_M_Animal SOMObject
#endif /* Animals_M_Animal */
#ifndef Animals_Kennel
    #define Animals_Kennel SOMObject
#endif /* Animals_Kennel */

/*
 * End of bindings for IDL types.
 */
#endif /* SOM_Module_animals_Animals_defined */

#ifndef SOM_Animals_Animal_h
#define SOM_Animals_Animal_h


/*
 * The SOM_STRICT_IDL macro means that we can ignore stars
 * in our declarations of objects.
 */
#define SOM_STRICT_IDL 1


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

/*
 * Define the class name as an object type
 */
#ifndef Animals_Animal
#define Animals_Animal SOMObject
#endif

/*
 * Include Parent Bindings
 */
#ifndef SOM_SOMObject_h
#ifdef SOMLOCALINCLUDES
#include "somobj.h"
#else
#include <somobj.h>
#endif
#endif

/*
 * Start of bindings for IDL types
 */

#ifndef _IDL_SEQUENCE_Animals_Animal_defined
#define _IDL_SEQUENCE_Animals_Animal_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    Animals_Animal *_buffer;
} _IDL_SEQUENCE_Animals_Animal;
#endif /* _IDL_SEQUENCE_Animals_Animal_defined */ 
typedef
_IDL_SEQUENCE_Animals_Animal Animals_Animal_AnimalInstances;

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD__IDL_SEQUENCE_Animal
    #ifdef _IDL_SEQUENCE_Animal
        #undef _IDL_SEQUENCE_Animal
        #define SOMTGD__IDL_SEQUENCE_Animal 1
    #else
        #define _IDL_SEQUENCE_Animal _IDL_SEQUENCE_Animals_Animal
    #endif /* _IDL_SEQUENCE_Animal */
#endif /* SOMTGD__IDL_SEQUENCE_Animal */

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_AnimalInstances
    #ifdef AnimalInstances
        #undef AnimalInstances
        #define SOMTGD_AnimalInstances 1
    #else
        #define AnimalInstances Animals_Animal_AnimalInstances
    #endif /* AnimalInstances */
#endif /* SOMTGD_AnimalInstances */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#endif /* SOM_DONT_USE_SHORT_NAMES */

/*
 * End of bindings for IDL types.
 */

#define Animals_Animal_MajorVersion 0
#define Animals_Animal_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMClass  SOMLINK Animals_AnimalNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct Animals_AnimalClassDataStructure {
	SOMClass classObject;
	somMToken _get_name;
	somMToken _set_name;
	somMToken _get_sound;
	somMToken _set_sound;
	somMToken _get_genus;
	somMToken _get_species;
	somMToken talk;
	somMToken display;
} 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK Animals_AnimalClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct Animals_AnimalCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK Animals_AnimalCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_Animals_Animal (Animals_AnimalClassData.classObject)
#ifndef SOMGD_Animals_Animal
    #if (defined(_Animals_Animal) || defined(__Animals_Animal))
        #undef _Animals_Animal
        #undef __Animals_Animal
        #define SOMGD_Animals_Animal 1
    #else
        #define _Animals_Animal _SOMCLASS_Animals_Animal
    #endif /* _Animals_Animal */
#endif /* SOMGD_Animals_Animal */
#define Animals_Animal_classObj _SOMCLASS_Animals_Animal
#define _SOMMTOKEN_Animals_Animal(method) ((somMToken)Animals_AnimalClassData.method)

/*
 * New and Renew macros for Animals_Animal
 */
#define Animals_AnimalNew() \
   ( _Animals_Animal ? \
	_somNew(_Animals_Animal) \
	: ( Animals_AnimalNewClass(\
		Animals_Animal_MajorVersion, \
		Animals_Animal_MinorVersion),\
	   _somNew(_Animals_Animal)))
#define Animals_AnimalRenew(buf) \
   ( _Animals_Animal ? \
	_somRenew(_Animals_Animal, buf) \
	: ( Animals_AnimalNewClass(\
		Animals_Animal_MajorVersion, \
		Animals_Animal_MinorVersion),\
	   _somRenew(_Animals_Animal, buf)))

/*
 * New Method: _get_name
 */
typedef string   SOMLINK somTP_Animals_Animal__get_name(Animals_Animal somSelf, Environment *ev);
typedef somTP_Animals_Animal__get_name *somTD_Animals_Animal__get_name;
/*
 *  The name of the animal.
 */
#define somMD_Animals_Animal__get_name "::Animals::Animal::_get_name"
#define Animals_Animal__get_name(somSelf,ev) \
    (SOM_Resolve(somSelf, Animals_Animal, _get_name) \
	(somSelf,ev))
#ifndef SOMGD_get_name
    #if (defined(_get_name) || defined(__get_name))
        #undef _get_name
        #undef __get_name
        #define SOMGD_get_name 1
    #else
        #define __get_name Animals_Animal__get_name
    #endif /* __get_name */
#endif /* SOMGD_get_name */

/*
 * New Method: _set_name
 */
typedef void   SOMLINK somTP_Animals_Animal__set_name(Animals_Animal somSelf, Environment *ev, 
		string name);
typedef somTP_Animals_Animal__set_name *somTD_Animals_Animal__set_name;
/*
 *  The name of the animal.
 */
#define somMD_Animals_Animal__set_name "::Animals::Animal::_set_name"
#define Animals_Animal__set_name(somSelf,ev,name) \
    (SOM_Resolve(somSelf, Animals_Animal, _set_name) \
	(somSelf,ev,name))
#ifndef SOMGD_set_name
    #if (defined(_set_name) || defined(__set_name))
        #undef _set_name
        #undef __set_name
        #define SOMGD_set_name 1
    #else
        #define __set_name Animals_Animal__set_name
    #endif /* __set_name */
#endif /* SOMGD_set_name */

/*
 * New Method: _get_sound
 */
typedef string   SOMLINK somTP_Animals_Animal__get_sound(Animals_Animal somSelf, Environment *ev);
typedef somTP_Animals_Animal__get_sound *somTD_Animals_Animal__get_sound;
/*
 *  The kind of sound that an animal makes.
 */
#define somMD_Animals_Animal__get_sound "::Animals::Animal::_get_sound"
#define Animals_Animal__get_sound(somSelf,ev) \
    (SOM_Resolve(somSelf, Animals_Animal, _get_sound) \
	(somSelf,ev))
#ifndef SOMGD_get_sound
    #if (defined(_get_sound) || defined(__get_sound))
        #undef _get_sound
        #undef __get_sound
        #define SOMGD_get_sound 1
    #else
        #define __get_sound Animals_Animal__get_sound
    #endif /* __get_sound */
#endif /* SOMGD_get_sound */

/*
 * New Method: _set_sound
 */
typedef void   SOMLINK somTP_Animals_Animal__set_sound(Animals_Animal somSelf, Environment *ev, 
		string sound);
typedef somTP_Animals_Animal__set_sound *somTD_Animals_Animal__set_sound;
/*
 *  The kind of sound that an animal makes.
 */
#define somMD_Animals_Animal__set_sound "::Animals::Animal::_set_sound"
#define Animals_Animal__set_sound(somSelf,ev,sound) \
    (SOM_Resolve(somSelf, Animals_Animal, _set_sound) \
	(somSelf,ev,sound))
#ifndef SOMGD_set_sound
    #if (defined(_set_sound) || defined(__set_sound))
        #undef _set_sound
        #undef __set_sound
        #define SOMGD_set_sound 1
    #else
        #define __set_sound Animals_Animal__set_sound
    #endif /* __set_sound */
#endif /* SOMGD_set_sound */

/*
 * New Method: _get_genus
 */
typedef string   SOMLINK somTP_Animals_Animal__get_genus(Animals_Animal somSelf, Environment *ev);
typedef somTP_Animals_Animal__get_genus *somTD_Animals_Animal__get_genus;
/*
 *  The genus of animal.
 *  The "_get_" method for this attribute should be overridden
 *  by derived classes.  The default version here just gives
 *  "<unknown>" as the genus.
 */
#define somMD_Animals_Animal__get_genus "::Animals::Animal::_get_genus"
#define Animals_Animal__get_genus(somSelf,ev) \
    (SOM_Resolve(somSelf, Animals_Animal, _get_genus) \
	(somSelf,ev))
#ifndef SOMGD_get_genus
    #if (defined(_get_genus) || defined(__get_genus))
        #undef _get_genus
        #undef __get_genus
        #define SOMGD_get_genus 1
    #else
        #define __get_genus Animals_Animal__get_genus
    #endif /* __get_genus */
#endif /* SOMGD_get_genus */

/*
 * New Method: _get_species
 */
typedef string   SOMLINK somTP_Animals_Animal__get_species(Animals_Animal somSelf, Environment *ev);
typedef somTP_Animals_Animal__get_species *somTD_Animals_Animal__get_species;
/*
 *  The species of animal.
 *  The "_get" method for this attribute should be overridden
 *  by derived classes.  The default version here just gives
 *  "<unknown>" as the species.
 */
#define somMD_Animals_Animal__get_species "::Animals::Animal::_get_species"
#define Animals_Animal__get_species(somSelf,ev) \
    (SOM_Resolve(somSelf, Animals_Animal, _get_species) \
	(somSelf,ev))
#ifndef SOMGD_get_species
    #if (defined(_get_species) || defined(__get_species))
        #undef _get_species
        #undef __get_species
        #define SOMGD_get_species 1
    #else
        #define __get_species Animals_Animal__get_species
    #endif /* __get_species */
#endif /* SOMGD_get_species */

/*
 * New Method: talk
 */
typedef void   SOMLINK somTP_Animals_Animal_talk(Animals_Animal somSelf, Environment *ev);
typedef somTP_Animals_Animal_talk *somTD_Animals_Animal_talk;
/*
 *  Ask the animal to talk.  Normally this just prints out the
 *  string corresponding to the sound attribute, but it can be
 *  overridden to do something else.
 */
#define somMD_Animals_Animal_talk "::Animals::Animal::talk"
#define Animals_Animal_talk(somSelf,ev) \
    (SOM_Resolve(somSelf, Animals_Animal, talk) \
	(somSelf,ev))
#ifndef SOMGD_talk
    #if (defined(_talk) || defined(__talk))
        #undef _talk
        #undef __talk
        #define SOMGD_talk 1
    #else
        #define _talk Animals_Animal_talk
    #endif /* _talk */
#endif /* SOMGD_talk */

/*
 * New Method: display
 */
typedef void   SOMLINK somTP_Animals_Animal_display(Animals_Animal somSelf, Environment *ev);
typedef somTP_Animals_Animal_display *somTD_Animals_Animal_display;
/*
 *  Displays an animal.    Derived classes should override this to
 *  display new derived information, and then call their parent
 *  version. Note: this method makes use of talk() to describe what
 *  the animal says.
 */
#define somMD_Animals_Animal_display "::Animals::Animal::display"
#define Animals_Animal_display(somSelf,ev) \
    (SOM_Resolve(somSelf, Animals_Animal, display) \
	(somSelf,ev))
#ifndef SOMGD_display
    #if (defined(_display) || defined(__display))
        #undef _display
        #undef __display
        #define SOMGD_display 1
    #else
        #define _display Animals_Animal_display
    #endif /* _display */
#endif /* SOMGD_display */

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define Animals_Animal_somInit SOMObject_somInit
#define Animals_Animal_somUninit SOMObject_somUninit
#define Animals_Animal_somFree SOMObject_somFree
#define Animals_Animal_somDumpSelfInt SOMObject_somDumpSelfInt

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define Animals_Animal_somDefaultInit SOMObject_somDefaultInit
#define Animals_Animal_somDestruct SOMObject_somDestruct
#define Animals_Animal_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define Animals_Animal_somDefaultAssign SOMObject_somDefaultAssign
#define Animals_Animal_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define Animals_Animal_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define Animals_Animal_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define Animals_Animal_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define Animals_Animal_somDefaultVAssign SOMObject_somDefaultVAssign
#define Animals_Animal_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define Animals_Animal_somGetClass SOMObject_somGetClass
#define Animals_Animal_somGetClassName SOMObject_somGetClassName
#define Animals_Animal_somGetSize SOMObject_somGetSize
#define Animals_Animal_somIsA SOMObject_somIsA
#define Animals_Animal_somIsInstanceOf SOMObject_somIsInstanceOf
#define Animals_Animal_somRespondsTo SOMObject_somRespondsTo
#define Animals_Animal_somDispatch SOMObject_somDispatch
#define Animals_Animal_somClassDispatch SOMObject_somClassDispatch
#define Animals_Animal_somCastObj SOMObject_somCastObj
#define Animals_Animal_somResetObj SOMObject_somResetObj
#define Animals_Animal_somPrintSelf SOMObject_somPrintSelf
#define Animals_Animal_somDumpSelf SOMObject_somDumpSelf
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_Animals_Animal_h */

#ifndef SOM_Animals_M_Animal_h
#define SOM_Animals_M_Animal_h


/*
 * The SOM_STRICT_IDL macro means that we can ignore stars
 * in our declarations of objects.
 */
#define SOM_STRICT_IDL 1


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

/*
 * Define the class name as an object type
 */
#ifndef Animals_M_Animal
#define Animals_M_Animal SOMObject
#endif

/*
 * Include Parent Bindings
 */
#ifndef SOM_SOMClass_h
#ifdef SOMLOCALINCLUDES
#include "somcls.h"
#else
#include <somcls.h>
#endif
#endif

/*
 * Start of bindings for IDL types
 */

#ifndef _IDL_SEQUENCE_Animals_Animal_defined
#define _IDL_SEQUENCE_Animals_Animal_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    Animals_Animal *_buffer;
} _IDL_SEQUENCE_Animals_Animal;
#endif /* _IDL_SEQUENCE_Animals_Animal_defined */ 

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD__IDL_SEQUENCE_Animal
    #ifdef _IDL_SEQUENCE_Animal
        #undef _IDL_SEQUENCE_Animal
        #define SOMTGD__IDL_SEQUENCE_Animal 1
    #else
        #define _IDL_SEQUENCE_Animal _IDL_SEQUENCE_Animals_Animal
    #endif /* _IDL_SEQUENCE_Animal */
#endif /* SOMTGD__IDL_SEQUENCE_Animal */
#endif /* SOM_DONT_USE_SHORT_NAMES */

/*
 * End of bindings for IDL types.
 */

#define Animals_M_Animal_MajorVersion 0
#define Animals_M_Animal_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMClass  SOMLINK Animals_M_AnimalNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct Animals_M_AnimalClassDataStructure {
	SOMClass classObject;
	somMToken _get_instances;
	somMToken _set_instances;
	somMToken newAnimal;
	somMToken addInstance;
	somMToken deleteInstance;
} 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK Animals_M_AnimalClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct Animals_M_AnimalCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK Animals_M_AnimalCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_Animals_M_Animal (Animals_M_AnimalClassData.classObject)
#ifndef SOMGD_Animals_M_Animal
    #if (defined(_Animals_M_Animal) || defined(__Animals_M_Animal))
        #undef _Animals_M_Animal
        #undef __Animals_M_Animal
        #define SOMGD_Animals_M_Animal 1
    #else
        #define _Animals_M_Animal _SOMCLASS_Animals_M_Animal
    #endif /* _Animals_M_Animal */
#endif /* SOMGD_Animals_M_Animal */
#define Animals_M_Animal_classObj _SOMCLASS_Animals_M_Animal
#define _SOMMTOKEN_Animals_M_Animal(method) ((somMToken)Animals_M_AnimalClassData.method)

/*
 * New and Renew macros for Animals_M_Animal
 */
#define Animals_M_AnimalNew() \
   ( _Animals_M_Animal ? \
	_somNew(_Animals_M_Animal) \
	: ( Animals_M_AnimalNewClass(\
		Animals_M_Animal_MajorVersion, \
		Animals_M_Animal_MinorVersion),\
	   _somNew(_Animals_M_Animal)))
#define Animals_M_AnimalRenew(buf) \
   ( _Animals_M_Animal ? \
	_somRenew(_Animals_M_Animal, buf) \
	: ( Animals_M_AnimalNewClass(\
		Animals_M_Animal_MajorVersion, \
		Animals_M_Animal_MinorVersion),\
	   _somRenew(_Animals_M_Animal, buf)))

/*
 * New Method: newAnimal
 */
typedef Animals_Animal   SOMLINK somTP_Animals_M_Animal_newAnimal(Animals_M_Animal somSelf, Environment *ev, 
		string name, 
		string sound);
typedef somTP_Animals_M_Animal_newAnimal *somTD_Animals_M_Animal_newAnimal;
/*
 *  Create an instance of an Animal with a specific sound.
 */
#define somMD_Animals_M_Animal_newAnimal "::Animals::M_Animal::newAnimal"
#define Animals_M_Animal_newAnimal(somSelf,ev,name,sound) \
    (SOM_Resolve(somSelf, Animals_M_Animal, newAnimal) \
	(somSelf,ev,name,sound))
#ifndef SOMGD_newAnimal
    #if (defined(_newAnimal) || defined(__newAnimal))
        #undef _newAnimal
        #undef __newAnimal
        #define SOMGD_newAnimal 1
    #else
        #define _newAnimal Animals_M_Animal_newAnimal
    #endif /* _newAnimal */
#endif /* SOMGD_newAnimal */

/*
 * New Method: _get_instances
 */
typedef _IDL_SEQUENCE_Animals_Animal   SOMLINK somTP_Animals_M_Animal__get_instances(Animals_M_Animal somSelf, Environment *ev);
typedef somTP_Animals_M_Animal__get_instances *somTD_Animals_M_Animal__get_instances;
/*
 *  All of the Animal instances that currently exist
 */
#define somMD_Animals_M_Animal__get_instances "::Animals::M_Animal::_get_instances"
#define Animals_M_Animal__get_instances(somSelf,ev) \
    (SOM_Resolve(somSelf, Animals_M_Animal, _get_instances) \
	(somSelf,ev))
#ifndef SOMGD_get_instances
    #if (defined(_get_instances) || defined(__get_instances))
        #undef _get_instances
        #undef __get_instances
        #define SOMGD_get_instances 1
    #else
        #define __get_instances Animals_M_Animal__get_instances
    #endif /* __get_instances */
#endif /* SOMGD_get_instances */

/*
 * New Method: _set_instances
 */
typedef void   SOMLINK somTP_Animals_M_Animal__set_instances(Animals_M_Animal somSelf, Environment *ev, 
		_IDL_SEQUENCE_Animals_Animal* instances);
typedef somTP_Animals_M_Animal__set_instances *somTD_Animals_M_Animal__set_instances;
/*
 *  All of the Animal instances that currently exist
 */
#define somMD_Animals_M_Animal__set_instances "::Animals::M_Animal::_set_instances"
#define Animals_M_Animal__set_instances(somSelf,ev,instances) \
    (SOM_Resolve(somSelf, Animals_M_Animal, _set_instances) \
	(somSelf,ev,instances))
#ifndef SOMGD_set_instances
    #if (defined(_set_instances) || defined(__set_instances))
        #undef _set_instances
        #undef __set_instances
        #define SOMGD_set_instances 1
    #else
        #define __set_instances Animals_M_Animal__set_instances
    #endif /* __set_instances */
#endif /* SOMGD_set_instances */

/*
 * New Method: addInstance
 */
typedef void   SOMLINK somTP_Animals_M_Animal_addInstance(Animals_M_Animal somSelf, Environment *ev, 
		Animals_Animal obj);
typedef somTP_Animals_M_Animal_addInstance *somTD_Animals_M_Animal_addInstance;
/*
 *  Used to add an new instance to the instances sequence.
 */
#define somMD_Animals_M_Animal_addInstance "::Animals::M_Animal::addInstance"
#define Animals_M_Animal_addInstance(somSelf,ev,obj) \
    (SOM_Resolve(somSelf, Animals_M_Animal, addInstance) \
	(somSelf,ev,obj))
#ifndef SOMGD_addInstance
    #if (defined(_addInstance) || defined(__addInstance))
        #undef _addInstance
        #undef __addInstance
        #define SOMGD_addInstance 1
    #else
        #define _addInstance Animals_M_Animal_addInstance
    #endif /* _addInstance */
#endif /* SOMGD_addInstance */

/*
 * New Method: deleteInstance
 */
typedef void   SOMLINK somTP_Animals_M_Animal_deleteInstance(Animals_M_Animal somSelf, Environment *ev, 
		Animals_Animal obj);
typedef somTP_Animals_M_Animal_deleteInstance *somTD_Animals_M_Animal_deleteInstance;
/*
 *  Used to remove an instance from the instances sequence.
 */
#define somMD_Animals_M_Animal_deleteInstance "::Animals::M_Animal::deleteInstance"
#define Animals_M_Animal_deleteInstance(somSelf,ev,obj) \
    (SOM_Resolve(somSelf, Animals_M_Animal, deleteInstance) \
	(somSelf,ev,obj))
#ifndef SOMGD_deleteInstance
    #if (defined(_deleteInstance) || defined(__deleteInstance))
        #undef _deleteInstance
        #undef __deleteInstance
        #define SOMGD_deleteInstance 1
    #else
        #define _deleteInstance Animals_M_Animal_deleteInstance
    #endif /* _deleteInstance */
#endif /* SOMGD_deleteInstance */

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define Animals_M_Animal_somNew SOMClass_somNew
#define Animals_M_Animal_somInit SOMObject_somInit
#define Animals_M_Animal_somUninit SOMObject_somUninit

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define Animals_M_Animal_somNewNoInit SOMClass_somNewNoInit
#define Animals_M_Animal_somRenew SOMClass_somRenew
#define Animals_M_Animal_somRenewNoInit SOMClass_somRenewNoInit
#define Animals_M_Animal_somRenewNoZero SOMClass_somRenewNoZero
#define Animals_M_Animal_somRenewNoInitNoZero SOMClass_somRenewNoInitNoZero
#define Animals_M_Animal_somAllocate SOMClass_somAllocate
#define Animals_M_Animal_somDeallocate SOMClass_somDeallocate
#define Animals_M_Animal_somJoin SOMClass_somJoin
#define Animals_M_Animal_somEndow SOMClass_somEndow
#define Animals_M_Animal_somClassOfNewClassWithParents SOMClass_somClassOfNewClassWithParents
#define Animals_M_Animal_somInitMIClass SOMClass_somInitMIClass
#define Animals_M_Animal_somAddStaticMethod SOMClass_somAddStaticMethod
#define Animals_M_Animal_somOverrideSMethod SOMClass_somOverrideSMethod
#define Animals_M_Animal_somClassReady SOMClass_somClassReady
#define Animals_M_Animal_somAddDynamicMethod SOMClass_somAddDynamicMethod
#define Animals_M_Animal_somGetName SOMClass_somGetName
#define Animals_M_Animal_somGetVersionNumbers SOMClass_somGetVersionNumbers
#define Animals_M_Animal_somGetNumMethods SOMClass_somGetNumMethods
#define Animals_M_Animal_somGetNumStaticMethods SOMClass_somGetNumStaticMethods
#define Animals_M_Animal_somGetParents SOMClass_somGetParents
#define Animals_M_Animal_somGetInstanceSize SOMClass_somGetInstanceSize
#define Animals_M_Animal_somGetInstancePartSize SOMClass_somGetInstancePartSize
#define Animals_M_Animal_somGetInstanceToken SOMClass_somGetInstanceToken
#define Animals_M_Animal_somGetMemberToken SOMClass_somGetMemberToken
#define Animals_M_Animal_somGetClassMtab SOMClass_somGetClassMtab
#define Animals_M_Animal_somGetClassData SOMClass_somGetClassData
#define Animals_M_Animal_somSetClassData SOMClass_somSetClassData
#define Animals_M_Animal__get_somDataAlignment SOMClass__get_somDataAlignment
#define Animals_M_Animal__get_somInstanceDataOffsets SOMClass__get_somInstanceDataOffsets
#define Animals_M_Animal__get_somDirectInitClasses SOMClass__get_somDirectInitClasses
#define Animals_M_Animal_somGetMethodDescriptor SOMClass_somGetMethodDescriptor
#define Animals_M_Animal_somGetMethodIndex SOMClass_somGetMethodIndex
#define Animals_M_Animal_somGetMethodToken SOMClass_somGetMethodToken
#define Animals_M_Animal_somGetNthMethodInfo SOMClass_somGetNthMethodInfo
#define Animals_M_Animal_somGetMarshalPlan SOMClass_somGetMarshalPlan
#define Animals_M_Animal_somGetMethodData SOMClass_somGetMethodData
#define Animals_M_Animal_somGetNthMethodData SOMClass_somGetNthMethodData
#define Animals_M_Animal_somFindMethod SOMClass_somFindMethod
#define Animals_M_Animal_somFindMethodOk SOMClass_somFindMethodOk
#define Animals_M_Animal_somFindSMethod SOMClass_somFindSMethod
#define Animals_M_Animal_somFindSMethodOk SOMClass_somFindSMethodOk
#define Animals_M_Animal_somLookupMethod SOMClass_somLookupMethod
#define Animals_M_Animal_somGetApplyStub SOMClass_somGetApplyStub
#define Animals_M_Animal_somGetPClsMtab SOMClass_somGetPClsMtab
#define Animals_M_Animal_somCheckVersion SOMClass_somCheckVersion
#define Animals_M_Animal_somDescendedFrom SOMClass_somDescendedFrom
#define Animals_M_Animal_somSupportsMethod SOMClass_somSupportsMethod
#define Animals_M_Animal_somDefinedMethod SOMClass_somDefinedMethod
#define Animals_M_Animal_somMethodImplOwner SOMClass_somMethodImplOwner
#define Animals_M_Animal_somGetRdStub SOMClass_somGetRdStub
#define Animals_M_Animal_somOverrideMtab SOMClass_somOverrideMtab
#define Animals_M_Animal_somDefaultInit SOMObject_somDefaultInit
#define Animals_M_Animal_somDestruct SOMObject_somDestruct
#define Animals_M_Animal_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define Animals_M_Animal_somDefaultAssign SOMObject_somDefaultAssign
#define Animals_M_Animal_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define Animals_M_Animal_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define Animals_M_Animal_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define Animals_M_Animal_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define Animals_M_Animal_somDefaultVAssign SOMObject_somDefaultVAssign
#define Animals_M_Animal_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define Animals_M_Animal_somFree SOMObject_somFree
#define Animals_M_Animal_somGetClass SOMObject_somGetClass
#define Animals_M_Animal_somGetClassName SOMObject_somGetClassName
#define Animals_M_Animal_somGetSize SOMObject_somGetSize
#define Animals_M_Animal_somIsA SOMObject_somIsA
#define Animals_M_Animal_somIsInstanceOf SOMObject_somIsInstanceOf
#define Animals_M_Animal_somRespondsTo SOMObject_somRespondsTo
#define Animals_M_Animal_somDispatch SOMObject_somDispatch
#define Animals_M_Animal_somClassDispatch SOMObject_somClassDispatch
#define Animals_M_Animal_somCastObj SOMObject_somCastObj
#define Animals_M_Animal_somResetObj SOMObject_somResetObj
#define Animals_M_Animal_somPrintSelf SOMObject_somPrintSelf
#define Animals_M_Animal_somDumpSelf SOMObject_somDumpSelf
#define Animals_M_Animal_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_Animals_M_Animal_h */

#ifndef SOM_Animals_Dog_h
#define SOM_Animals_Dog_h


/*
 * The SOM_STRICT_IDL macro means that we can ignore stars
 * in our declarations of objects.
 */
#define SOM_STRICT_IDL 1


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

/*
 * Define the class name as an object type
 */
#ifndef Animals_Dog
#define Animals_Dog SOMObject
#endif

/*
 * Include Parent Bindings
 */
#ifndef SOM_Animals_Animal_h
#ifdef SOMLOCALINCLUDES
#include "animals.h"
#else
#include <animals.h>
#endif
#endif

/*
 * Start of bindings for IDL types
 */


/*
 * End of bindings for IDL types.
 */

#define Animals_Dog_MajorVersion 0
#define Animals_Dog_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMClass  SOMLINK Animals_DogNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct Animals_DogClassDataStructure {
	SOMClass classObject;
	somMToken _get_breed;
	somMToken _set_breed;
	somMToken _get_color;
	somMToken _set_color;
} 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK Animals_DogClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct Animals_DogCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK Animals_DogCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_Animals_Dog (Animals_DogClassData.classObject)
#ifndef SOMGD_Animals_Dog
    #if (defined(_Animals_Dog) || defined(__Animals_Dog))
        #undef _Animals_Dog
        #undef __Animals_Dog
        #define SOMGD_Animals_Dog 1
    #else
        #define _Animals_Dog _SOMCLASS_Animals_Dog
    #endif /* _Animals_Dog */
#endif /* SOMGD_Animals_Dog */
#define Animals_Dog_classObj _SOMCLASS_Animals_Dog
#define _SOMMTOKEN_Animals_Dog(method) ((somMToken)Animals_DogClassData.method)

/*
 * New and Renew macros for Animals_Dog
 */
#define Animals_DogNew() \
   ( _Animals_Dog ? \
	_somNew(_Animals_Dog) \
	: ( Animals_DogNewClass(\
		Animals_Dog_MajorVersion, \
		Animals_Dog_MinorVersion),\
	   _somNew(_Animals_Dog)))
#define Animals_DogRenew(buf) \
   ( _Animals_Dog ? \
	_somRenew(_Animals_Dog, buf) \
	: ( Animals_DogNewClass(\
		Animals_Dog_MajorVersion, \
		Animals_Dog_MinorVersion),\
	   _somRenew(_Animals_Dog, buf)))

/*
 * New Method: _get_breed
 */
typedef string   SOMLINK somTP_Animals_Dog__get_breed(Animals_Dog somSelf, Environment *ev);
typedef somTP_Animals_Dog__get_breed *somTD_Animals_Dog__get_breed;
/*
 *  The breed of this Dog.
 */
#define somMD_Animals_Dog__get_breed "::Animals::Dog::_get_breed"
#define Animals_Dog__get_breed(somSelf,ev) \
    (SOM_Resolve(somSelf, Animals_Dog, _get_breed) \
	(somSelf,ev))
#ifndef SOMGD_get_breed
    #if (defined(_get_breed) || defined(__get_breed))
        #undef _get_breed
        #undef __get_breed
        #define SOMGD_get_breed 1
    #else
        #define __get_breed Animals_Dog__get_breed
    #endif /* __get_breed */
#endif /* SOMGD_get_breed */

/*
 * New Method: _set_breed
 */
typedef void   SOMLINK somTP_Animals_Dog__set_breed(Animals_Dog somSelf, Environment *ev, 
		string breed);
typedef somTP_Animals_Dog__set_breed *somTD_Animals_Dog__set_breed;
/*
 *  The breed of this Dog.
 */
#define somMD_Animals_Dog__set_breed "::Animals::Dog::_set_breed"
#define Animals_Dog__set_breed(somSelf,ev,breed) \
    (SOM_Resolve(somSelf, Animals_Dog, _set_breed) \
	(somSelf,ev,breed))
#ifndef SOMGD_set_breed
    #if (defined(_set_breed) || defined(__set_breed))
        #undef _set_breed
        #undef __set_breed
        #define SOMGD_set_breed 1
    #else
        #define __set_breed Animals_Dog__set_breed
    #endif /* __set_breed */
#endif /* SOMGD_set_breed */

/*
 * New Method: _get_color
 */
typedef string   SOMLINK somTP_Animals_Dog__get_color(Animals_Dog somSelf, Environment *ev);
typedef somTP_Animals_Dog__get_color *somTD_Animals_Dog__get_color;
/*
 *  The color of this Dog.
 */
#define somMD_Animals_Dog__get_color "::Animals::Dog::_get_color"
#define Animals_Dog__get_color(somSelf,ev) \
    (SOM_Resolve(somSelf, Animals_Dog, _get_color) \
	(somSelf,ev))
#ifndef SOMGD_get_color
    #if (defined(_get_color) || defined(__get_color))
        #undef _get_color
        #undef __get_color
        #define SOMGD_get_color 1
    #else
        #define __get_color Animals_Dog__get_color
    #endif /* __get_color */
#endif /* SOMGD_get_color */

/*
 * New Method: _set_color
 */
typedef void   SOMLINK somTP_Animals_Dog__set_color(Animals_Dog somSelf, Environment *ev, 
		string color);
typedef somTP_Animals_Dog__set_color *somTD_Animals_Dog__set_color;
/*
 *  The color of this Dog.
 */
#define somMD_Animals_Dog__set_color "::Animals::Dog::_set_color"
#define Animals_Dog__set_color(somSelf,ev,color) \
    (SOM_Resolve(somSelf, Animals_Dog, _set_color) \
	(somSelf,ev,color))
#ifndef SOMGD_set_color
    #if (defined(_set_color) || defined(__set_color))
        #undef _set_color
        #undef __set_color
        #define SOMGD_set_color 1
    #else
        #define __set_color Animals_Dog__set_color
    #endif /* __set_color */
#endif /* SOMGD_set_color */

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define Animals_Dog__get_genus Animals_Animal__get_genus
#define Animals_Dog__get_species Animals_Animal__get_species
#define Animals_Dog_display Animals_Animal_display
#define Animals_Dog_somInit SOMObject_somInit
#define Animals_Dog_somUninit SOMObject_somUninit
#define Animals_Dog_somDumpSelfInt SOMObject_somDumpSelfInt

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define Animals_Dog__get_name Animals_Animal__get_name
#define Animals_Dog__set_name Animals_Animal__set_name
#define Animals_Dog__get_sound Animals_Animal__get_sound
#define Animals_Dog__set_sound Animals_Animal__set_sound
#define Animals_Dog_talk Animals_Animal_talk
#define Animals_Dog_somFree SOMObject_somFree
#define Animals_Dog_somDefaultInit SOMObject_somDefaultInit
#define Animals_Dog_somDestruct SOMObject_somDestruct
#define Animals_Dog_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define Animals_Dog_somDefaultAssign SOMObject_somDefaultAssign
#define Animals_Dog_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define Animals_Dog_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define Animals_Dog_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define Animals_Dog_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define Animals_Dog_somDefaultVAssign SOMObject_somDefaultVAssign
#define Animals_Dog_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define Animals_Dog_somGetClass SOMObject_somGetClass
#define Animals_Dog_somGetClassName SOMObject_somGetClassName
#define Animals_Dog_somGetSize SOMObject_somGetSize
#define Animals_Dog_somIsA SOMObject_somIsA
#define Animals_Dog_somIsInstanceOf SOMObject_somIsInstanceOf
#define Animals_Dog_somRespondsTo SOMObject_somRespondsTo
#define Animals_Dog_somDispatch SOMObject_somDispatch
#define Animals_Dog_somClassDispatch SOMObject_somClassDispatch
#define Animals_Dog_somCastObj SOMObject_somCastObj
#define Animals_Dog_somResetObj SOMObject_somResetObj
#define Animals_Dog_somPrintSelf SOMObject_somPrintSelf
#define Animals_Dog_somDumpSelf SOMObject_somDumpSelf
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_Animals_Dog_h */

#ifndef SOM_Animals_Kennel_h
#define SOM_Animals_Kennel_h


/*
 * The SOM_STRICT_IDL macro means that we can ignore stars
 * in our declarations of objects.
 */
#define SOM_STRICT_IDL 1


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

/*
 * Define the class name as an object type
 */
#ifndef Animals_Kennel
#define Animals_Kennel SOMObject
#endif

/*
 * Include Parent Bindings
 */
#ifndef SOM_SOMClass_h
#ifdef SOMLOCALINCLUDES
#include "somcls.h"
#else
#include <somcls.h>
#endif
#endif

/*
 * Start of bindings for IDL types
 */


/*
 * End of bindings for IDL types.
 */

#define Animals_Kennel_MajorVersion 0
#define Animals_Kennel_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMClass  SOMLINK Animals_KennelNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct Animals_KennelClassDataStructure {
	SOMClass classObject;
	somMToken newDog;
} 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK Animals_KennelClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct Animals_KennelCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK Animals_KennelCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_Animals_Kennel (Animals_KennelClassData.classObject)
#ifndef SOMGD_Animals_Kennel
    #if (defined(_Animals_Kennel) || defined(__Animals_Kennel))
        #undef _Animals_Kennel
        #undef __Animals_Kennel
        #define SOMGD_Animals_Kennel 1
    #else
        #define _Animals_Kennel _SOMCLASS_Animals_Kennel
    #endif /* _Animals_Kennel */
#endif /* SOMGD_Animals_Kennel */
#define Animals_Kennel_classObj _SOMCLASS_Animals_Kennel
#define _SOMMTOKEN_Animals_Kennel(method) ((somMToken)Animals_KennelClassData.method)

/*
 * New and Renew macros for Animals_Kennel
 */
#define Animals_KennelNew() \
   ( _Animals_Kennel ? \
	_somNew(_Animals_Kennel) \
	: ( Animals_KennelNewClass(\
		Animals_Kennel_MajorVersion, \
		Animals_Kennel_MinorVersion),\
	   _somNew(_Animals_Kennel)))
#define Animals_KennelRenew(buf) \
   ( _Animals_Kennel ? \
	_somRenew(_Animals_Kennel, buf) \
	: ( Animals_KennelNewClass(\
		Animals_Kennel_MajorVersion, \
		Animals_Kennel_MinorVersion),\
	   _somRenew(_Animals_Kennel, buf)))

/*
 * New Method: newDog
 */
typedef Animals_Dog   SOMLINK somTP_Animals_Kennel_newDog(Animals_Kennel somSelf, Environment *ev, 
		string name, 
		string sound, 
		string breed, 
		string color);
typedef somTP_Animals_Kennel_newDog *somTD_Animals_Kennel_newDog;
/*
 *  Create an instance of a Dog with a specific name,
 *  sound, breed, & color.
 */
#define somMD_Animals_Kennel_newDog "::Animals::Kennel::newDog"
#define Animals_Kennel_newDog(somSelf,ev,name,sound,breed,color) \
    (SOM_Resolve(somSelf, Animals_Kennel, newDog) \
	(somSelf,ev,name,sound,breed,color))
#ifndef SOMGD_newDog
    #if (defined(_newDog) || defined(__newDog))
        #undef _newDog
        #undef __newDog
        #define SOMGD_newDog 1
    #else
        #define _newDog Animals_Kennel_newDog
    #endif /* _newDog */
#endif /* SOMGD_newDog */

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define Animals_Kennel_somNew SOMClass_somNew

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define Animals_Kennel_somNewNoInit SOMClass_somNewNoInit
#define Animals_Kennel_somRenew SOMClass_somRenew
#define Animals_Kennel_somRenewNoInit SOMClass_somRenewNoInit
#define Animals_Kennel_somRenewNoZero SOMClass_somRenewNoZero
#define Animals_Kennel_somRenewNoInitNoZero SOMClass_somRenewNoInitNoZero
#define Animals_Kennel_somAllocate SOMClass_somAllocate
#define Animals_Kennel_somDeallocate SOMClass_somDeallocate
#define Animals_Kennel_somJoin SOMClass_somJoin
#define Animals_Kennel_somEndow SOMClass_somEndow
#define Animals_Kennel_somClassOfNewClassWithParents SOMClass_somClassOfNewClassWithParents
#define Animals_Kennel_somInitMIClass SOMClass_somInitMIClass
#define Animals_Kennel_somAddStaticMethod SOMClass_somAddStaticMethod
#define Animals_Kennel_somOverrideSMethod SOMClass_somOverrideSMethod
#define Animals_Kennel_somClassReady SOMClass_somClassReady
#define Animals_Kennel_somAddDynamicMethod SOMClass_somAddDynamicMethod
#define Animals_Kennel_somGetName SOMClass_somGetName
#define Animals_Kennel_somGetVersionNumbers SOMClass_somGetVersionNumbers
#define Animals_Kennel_somGetNumMethods SOMClass_somGetNumMethods
#define Animals_Kennel_somGetNumStaticMethods SOMClass_somGetNumStaticMethods
#define Animals_Kennel_somGetParents SOMClass_somGetParents
#define Animals_Kennel_somGetInstanceSize SOMClass_somGetInstanceSize
#define Animals_Kennel_somGetInstancePartSize SOMClass_somGetInstancePartSize
#define Animals_Kennel_somGetInstanceToken SOMClass_somGetInstanceToken
#define Animals_Kennel_somGetMemberToken SOMClass_somGetMemberToken
#define Animals_Kennel_somGetClassMtab SOMClass_somGetClassMtab
#define Animals_Kennel_somGetClassData SOMClass_somGetClassData
#define Animals_Kennel_somSetClassData SOMClass_somSetClassData
#define Animals_Kennel__get_somDataAlignment SOMClass__get_somDataAlignment
#define Animals_Kennel__get_somInstanceDataOffsets SOMClass__get_somInstanceDataOffsets
#define Animals_Kennel__get_somDirectInitClasses SOMClass__get_somDirectInitClasses
#define Animals_Kennel_somGetMethodDescriptor SOMClass_somGetMethodDescriptor
#define Animals_Kennel_somGetMethodIndex SOMClass_somGetMethodIndex
#define Animals_Kennel_somGetMethodToken SOMClass_somGetMethodToken
#define Animals_Kennel_somGetNthMethodInfo SOMClass_somGetNthMethodInfo
#define Animals_Kennel_somGetMarshalPlan SOMClass_somGetMarshalPlan
#define Animals_Kennel_somGetMethodData SOMClass_somGetMethodData
#define Animals_Kennel_somGetNthMethodData SOMClass_somGetNthMethodData
#define Animals_Kennel_somFindMethod SOMClass_somFindMethod
#define Animals_Kennel_somFindMethodOk SOMClass_somFindMethodOk
#define Animals_Kennel_somFindSMethod SOMClass_somFindSMethod
#define Animals_Kennel_somFindSMethodOk SOMClass_somFindSMethodOk
#define Animals_Kennel_somLookupMethod SOMClass_somLookupMethod
#define Animals_Kennel_somGetApplyStub SOMClass_somGetApplyStub
#define Animals_Kennel_somGetPClsMtab SOMClass_somGetPClsMtab
#define Animals_Kennel_somCheckVersion SOMClass_somCheckVersion
#define Animals_Kennel_somDescendedFrom SOMClass_somDescendedFrom
#define Animals_Kennel_somSupportsMethod SOMClass_somSupportsMethod
#define Animals_Kennel_somDefinedMethod SOMClass_somDefinedMethod
#define Animals_Kennel_somMethodImplOwner SOMClass_somMethodImplOwner
#define Animals_Kennel_somGetRdStub SOMClass_somGetRdStub
#define Animals_Kennel_somOverrideMtab SOMClass_somOverrideMtab
#define Animals_Kennel_somDefaultInit SOMObject_somDefaultInit
#define Animals_Kennel_somDestruct SOMObject_somDestruct
#define Animals_Kennel_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define Animals_Kennel_somDefaultAssign SOMObject_somDefaultAssign
#define Animals_Kennel_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define Animals_Kennel_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define Animals_Kennel_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define Animals_Kennel_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define Animals_Kennel_somDefaultVAssign SOMObject_somDefaultVAssign
#define Animals_Kennel_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define Animals_Kennel_somInit SOMObject_somInit
#define Animals_Kennel_somUninit SOMObject_somUninit
#define Animals_Kennel_somFree SOMObject_somFree
#define Animals_Kennel_somGetClass SOMObject_somGetClass
#define Animals_Kennel_somGetClassName SOMObject_somGetClassName
#define Animals_Kennel_somGetSize SOMObject_somGetSize
#define Animals_Kennel_somIsA SOMObject_somIsA
#define Animals_Kennel_somIsInstanceOf SOMObject_somIsInstanceOf
#define Animals_Kennel_somRespondsTo SOMObject_somRespondsTo
#define Animals_Kennel_somDispatch SOMObject_somDispatch
#define Animals_Kennel_somClassDispatch SOMObject_somClassDispatch
#define Animals_Kennel_somCastObj SOMObject_somCastObj
#define Animals_Kennel_somResetObj SOMObject_somResetObj
#define Animals_Kennel_somPrintSelf SOMObject_somPrintSelf
#define Animals_Kennel_somDumpSelf SOMObject_somDumpSelf
#define Animals_Kennel_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_Animals_Kennel_h */

#ifndef SOM_Animals_BigDog_h
#define SOM_Animals_BigDog_h


/*
 * The SOM_STRICT_IDL macro means that we can ignore stars
 * in our declarations of objects.
 */
#define SOM_STRICT_IDL 1


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

/*
 * Define the class name as an object type
 */
#ifndef Animals_BigDog
#define Animals_BigDog SOMObject
#endif

/*
 * Include Parent Bindings
 */
#ifndef SOM_Animals_Dog_h
#ifdef SOMLOCALINCLUDES
#include "animals.h"
#else
#include <animals.h>
#endif
#endif

/*
 * Start of bindings for IDL types
 */


/*
 * End of bindings for IDL types.
 */

#define Animals_BigDog_MajorVersion 0
#define Animals_BigDog_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMClass  SOMLINK Animals_BigDogNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct Animals_BigDogClassDataStructure {
	SOMClass classObject;
} 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK Animals_BigDogClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct Animals_BigDogCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK Animals_BigDogCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_Animals_BigDog (Animals_BigDogClassData.classObject)
#ifndef SOMGD_Animals_BigDog
    #if (defined(_Animals_BigDog) || defined(__Animals_BigDog))
        #undef _Animals_BigDog
        #undef __Animals_BigDog
        #define SOMGD_Animals_BigDog 1
    #else
        #define _Animals_BigDog _SOMCLASS_Animals_BigDog
    #endif /* _Animals_BigDog */
#endif /* SOMGD_Animals_BigDog */
#define Animals_BigDog_classObj _SOMCLASS_Animals_BigDog
#define _SOMMTOKEN_Animals_BigDog(method) ((somMToken)Animals_BigDogClassData.method)

/*
 * New and Renew macros for Animals_BigDog
 */
#define Animals_BigDogNew() \
   ( _Animals_BigDog ? \
	_somNew(_Animals_BigDog) \
	: ( Animals_BigDogNewClass(\
		Animals_BigDog_MajorVersion, \
		Animals_BigDog_MinorVersion),\
	   _somNew(_Animals_BigDog)))
#define Animals_BigDogRenew(buf) \
   ( _Animals_BigDog ? \
	_somRenew(_Animals_BigDog, buf) \
	: ( Animals_BigDogNewClass(\
		Animals_BigDog_MajorVersion, \
		Animals_BigDog_MinorVersion),\
	   _somRenew(_Animals_BigDog, buf)))

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define Animals_BigDog_talk Animals_Animal_talk

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define Animals_BigDog__get_breed Animals_Dog__get_breed
#define Animals_BigDog__set_breed Animals_Dog__set_breed
#define Animals_BigDog__get_color Animals_Dog__get_color
#define Animals_BigDog__set_color Animals_Dog__set_color
#define Animals_BigDog__get_genus Animals_Animal__get_genus
#define Animals_BigDog__get_species Animals_Animal__get_species
#define Animals_BigDog_display Animals_Animal_display
#define Animals_BigDog_somInit SOMObject_somInit
#define Animals_BigDog_somUninit SOMObject_somUninit
#define Animals_BigDog_somDumpSelfInt SOMObject_somDumpSelfInt
#define Animals_BigDog__get_name Animals_Animal__get_name
#define Animals_BigDog__set_name Animals_Animal__set_name
#define Animals_BigDog__get_sound Animals_Animal__get_sound
#define Animals_BigDog__set_sound Animals_Animal__set_sound
#define Animals_BigDog_somFree SOMObject_somFree
#define Animals_BigDog_somDefaultInit SOMObject_somDefaultInit
#define Animals_BigDog_somDestruct SOMObject_somDestruct
#define Animals_BigDog_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define Animals_BigDog_somDefaultAssign SOMObject_somDefaultAssign
#define Animals_BigDog_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define Animals_BigDog_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define Animals_BigDog_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define Animals_BigDog_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define Animals_BigDog_somDefaultVAssign SOMObject_somDefaultVAssign
#define Animals_BigDog_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define Animals_BigDog_somGetClass SOMObject_somGetClass
#define Animals_BigDog_somGetClassName SOMObject_somGetClassName
#define Animals_BigDog_somGetSize SOMObject_somGetSize
#define Animals_BigDog_somIsA SOMObject_somIsA
#define Animals_BigDog_somIsInstanceOf SOMObject_somIsInstanceOf
#define Animals_BigDog_somRespondsTo SOMObject_somRespondsTo
#define Animals_BigDog_somDispatch SOMObject_somDispatch
#define Animals_BigDog_somClassDispatch SOMObject_somClassDispatch
#define Animals_BigDog_somCastObj SOMObject_somCastObj
#define Animals_BigDog_somResetObj SOMObject_somResetObj
#define Animals_BigDog_somPrintSelf SOMObject_somPrintSelf
#define Animals_BigDog_somDumpSelf SOMObject_somDumpSelf
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_Animals_BigDog_h */

#ifndef SOM_Animals_LittleDog_h
#define SOM_Animals_LittleDog_h


/*
 * The SOM_STRICT_IDL macro means that we can ignore stars
 * in our declarations of objects.
 */
#define SOM_STRICT_IDL 1


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

/*
 * Define the class name as an object type
 */
#ifndef Animals_LittleDog
#define Animals_LittleDog SOMObject
#endif

/*
 * Include Parent Bindings
 */
#ifndef SOM_Animals_Dog_h
#ifdef SOMLOCALINCLUDES
#include "animals.h"
#else
#include <animals.h>
#endif
#endif

/*
 * Start of bindings for IDL types
 */


/*
 * End of bindings for IDL types.
 */

#define Animals_LittleDog_MajorVersion 0
#define Animals_LittleDog_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMClass  SOMLINK Animals_LittleDogNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct Animals_LittleDogClassDataStructure {
	SOMClass classObject;
} 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK Animals_LittleDogClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct Animals_LittleDogCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} 
#if defined(SOM_Module_animals_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK Animals_LittleDogCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_Animals_LittleDog (Animals_LittleDogClassData.classObject)
#ifndef SOMGD_Animals_LittleDog
    #if (defined(_Animals_LittleDog) || defined(__Animals_LittleDog))
        #undef _Animals_LittleDog
        #undef __Animals_LittleDog
        #define SOMGD_Animals_LittleDog 1
    #else
        #define _Animals_LittleDog _SOMCLASS_Animals_LittleDog
    #endif /* _Animals_LittleDog */
#endif /* SOMGD_Animals_LittleDog */
#define Animals_LittleDog_classObj _SOMCLASS_Animals_LittleDog
#define _SOMMTOKEN_Animals_LittleDog(method) ((somMToken)Animals_LittleDogClassData.method)

/*
 * New and Renew macros for Animals_LittleDog
 */
#define Animals_LittleDogNew() \
   ( _Animals_LittleDog ? \
	_somNew(_Animals_LittleDog) \
	: ( Animals_LittleDogNewClass(\
		Animals_LittleDog_MajorVersion, \
		Animals_LittleDog_MinorVersion),\
	   _somNew(_Animals_LittleDog)))
#define Animals_LittleDogRenew(buf) \
   ( _Animals_LittleDog ? \
	_somRenew(_Animals_LittleDog, buf) \
	: ( Animals_LittleDogNewClass(\
		Animals_LittleDog_MajorVersion, \
		Animals_LittleDog_MinorVersion),\
	   _somRenew(_Animals_LittleDog, buf)))

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define Animals_LittleDog_talk Animals_Animal_talk

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define Animals_LittleDog__get_breed Animals_Dog__get_breed
#define Animals_LittleDog__set_breed Animals_Dog__set_breed
#define Animals_LittleDog__get_color Animals_Dog__get_color
#define Animals_LittleDog__set_color Animals_Dog__set_color
#define Animals_LittleDog__get_genus Animals_Animal__get_genus
#define Animals_LittleDog__get_species Animals_Animal__get_species
#define Animals_LittleDog_display Animals_Animal_display
#define Animals_LittleDog_somInit SOMObject_somInit
#define Animals_LittleDog_somUninit SOMObject_somUninit
#define Animals_LittleDog_somDumpSelfInt SOMObject_somDumpSelfInt
#define Animals_LittleDog__get_name Animals_Animal__get_name
#define Animals_LittleDog__set_name Animals_Animal__set_name
#define Animals_LittleDog__get_sound Animals_Animal__get_sound
#define Animals_LittleDog__set_sound Animals_Animal__set_sound
#define Animals_LittleDog_somFree SOMObject_somFree
#define Animals_LittleDog_somDefaultInit SOMObject_somDefaultInit
#define Animals_LittleDog_somDestruct SOMObject_somDestruct
#define Animals_LittleDog_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define Animals_LittleDog_somDefaultAssign SOMObject_somDefaultAssign
#define Animals_LittleDog_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define Animals_LittleDog_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define Animals_LittleDog_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define Animals_LittleDog_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define Animals_LittleDog_somDefaultVAssign SOMObject_somDefaultVAssign
#define Animals_LittleDog_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define Animals_LittleDog_somGetClass SOMObject_somGetClass
#define Animals_LittleDog_somGetClassName SOMObject_somGetClassName
#define Animals_LittleDog_somGetSize SOMObject_somGetSize
#define Animals_LittleDog_somIsA SOMObject_somIsA
#define Animals_LittleDog_somIsInstanceOf SOMObject_somIsInstanceOf
#define Animals_LittleDog_somRespondsTo SOMObject_somRespondsTo
#define Animals_LittleDog_somDispatch SOMObject_somDispatch
#define Animals_LittleDog_somClassDispatch SOMObject_somClassDispatch
#define Animals_LittleDog_somCastObj SOMObject_somCastObj
#define Animals_LittleDog_somResetObj SOMObject_somResetObj
#define Animals_LittleDog_somPrintSelf SOMObject_somPrintSelf
#define Animals_LittleDog_somDumpSelf SOMObject_somDumpSelf
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_Animals_LittleDog_h */
