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

#ifndef SOM_Module_omgidobj_CosObjectIdentity_defined
#define SOM_Module_omgidobj_CosObjectIdentity_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 CosObjectIdentity_IdentifiableObject
    #define CosObjectIdentity_IdentifiableObject SOMObject
#endif /* CosObjectIdentity_IdentifiableObject */
#ifndef CosObjectIdentity_IdentifiableObject
    #define CosObjectIdentity_IdentifiableObject SOMObject
#endif /* CosObjectIdentity_IdentifiableObject */
typedef
unsigned long  CosObjectIdentity_ObjectIdentifier;

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_ObjectIdentifier
    #ifdef ObjectIdentifier
        #undef ObjectIdentifier
        #define SOMTGD_ObjectIdentifier 1
    #else
        #define ObjectIdentifier CosObjectIdentity_ObjectIdentifier
    #endif /* ObjectIdentifier */
#endif /* SOMTGD_ObjectIdentifier */
#endif /* SOM_DONT_USE_SHORT_NAMES */

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

#ifndef SOM_CosObjectIdentity_IdentifiableObject_h
#define SOM_CosObjectIdentity_IdentifiableObject_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>
#ifndef SOM_IMPORTEXPORT_somabs1_omgidobj
#ifdef SOM_DLL_somabs1
	/* export semantics */
	#if defined(SOM_DEFFILE_somabs1)\
	||(defined(SOM_DEFFILE_BY_DEFAULT)&&!defined(SOM_NODEFFILE_somabs1))\
	|| !defined(SOM_Module_omgidobj_Source)
	#define SOM_IMPORTEXPORT_somabs1_omgidobj
	#else
	#define SOM_IMPORTEXPORT_somabs1_omgidobj SOMDLLEXPORT
	#endif
#else
	#define SOM_IMPORTEXPORT_somabs1_omgidobj SOMDLLIMPORT
#endif
#endif

/*
 * -- 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 CosObjectIdentity_IdentifiableObject
#define CosObjectIdentity_IdentifiableObject 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
 */


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

#define CosObjectIdentity_IdentifiableObject_MajorVersion 3
#define CosObjectIdentity_IdentifiableObject_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOM_IMPORTEXPORT_somabs1_omgidobj SOMClass  SOMLINK CosObjectIdentity_IdentifiableObjectNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct CosObjectIdentity_IdentifiableObjectClassDataStructure {
	SOMClass classObject;
	somMToken _get_constant_random_id;
	somMToken _set_constant_random_id;
	somMToken is_identical;
} SOM_IMPORTEXPORT_somabs1_omgidobj SOMDLINK CosObjectIdentity_IdentifiableObjectClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct CosObjectIdentity_IdentifiableObjectCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOM_IMPORTEXPORT_somabs1_omgidobj SOMDLINK CosObjectIdentity_IdentifiableObjectCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_CosObjectIdentity_IdentifiableObject (CosObjectIdentity_IdentifiableObjectClassData.classObject)
#ifndef SOMGD_CosObjectIdentity_IdentifiableObject
    #if (defined(_CosObjectIdentity_IdentifiableObject) || defined(__CosObjectIdentity_IdentifiableObject))
        #undef _CosObjectIdentity_IdentifiableObject
        #undef __CosObjectIdentity_IdentifiableObject
        #define SOMGD_CosObjectIdentity_IdentifiableObject 1
    #else
        #define _CosObjectIdentity_IdentifiableObject _SOMCLASS_CosObjectIdentity_IdentifiableObject
    #endif /* _CosObjectIdentity_IdentifiableObject */
#endif /* SOMGD_CosObjectIdentity_IdentifiableObject */
#define CosObjectIdentity_IdentifiableObject_classObj _SOMCLASS_CosObjectIdentity_IdentifiableObject
#define _SOMMTOKEN_CosObjectIdentity_IdentifiableObject(method) ((somMToken)CosObjectIdentity_IdentifiableObjectClassData.method)

/*
 * New and Renew macros for CosObjectIdentity_IdentifiableObject
 */
#define CosObjectIdentity_IdentifiableObjectNew() \
   ( _CosObjectIdentity_IdentifiableObject ? \
	_somNew(_CosObjectIdentity_IdentifiableObject) \
	: ( CosObjectIdentity_IdentifiableObjectNewClass(\
		CosObjectIdentity_IdentifiableObject_MajorVersion, \
		CosObjectIdentity_IdentifiableObject_MinorVersion),\
	   _somNew(_CosObjectIdentity_IdentifiableObject)))
#define CosObjectIdentity_IdentifiableObjectRenew(buf) \
   ( _CosObjectIdentity_IdentifiableObject ? \
	_somRenew(_CosObjectIdentity_IdentifiableObject, buf) \
	: ( CosObjectIdentity_IdentifiableObjectNewClass(\
		CosObjectIdentity_IdentifiableObject_MajorVersion, \
		CosObjectIdentity_IdentifiableObject_MinorVersion),\
	   _somRenew(_CosObjectIdentity_IdentifiableObject, buf)))

/*
 * New Method: _get_constant_random_id
 */
typedef CosObjectIdentity_ObjectIdentifier   SOMLINK somTP_CosObjectIdentity_IdentifiableObject__get_constant_random_id(CosObjectIdentity_IdentifiableObject somSelf, Environment *ev);
typedef somTP_CosObjectIdentity_IdentifiableObject__get_constant_random_id *somTD_CosObjectIdentity_IdentifiableObject__get_constant_random_id;
/*
 * Method from the IDL attribute statement:
 * "readonly attribute CosObjectIdentity_ObjectIdentifier constant_random_id"
 */
#define somMD_CosObjectIdentity_IdentifiableObject__get_constant_random_id "::CosObjectIdentity::IdentifiableObject::_get_constant_random_id"
#define CosObjectIdentity_IdentifiableObject__get_constant_random_id(somSelf,ev) \
    (SOM_Resolve(somSelf, CosObjectIdentity_IdentifiableObject, _get_constant_random_id) \
	(somSelf,ev))
#ifndef SOMGD_get_constant_random_id
    #if (defined(_get_constant_random_id) || defined(__get_constant_random_id))
        #undef _get_constant_random_id
        #undef __get_constant_random_id
        #define SOMGD_get_constant_random_id 1
    #else
        #define __get_constant_random_id CosObjectIdentity_IdentifiableObject__get_constant_random_id
    #endif /* __get_constant_random_id */
#endif /* SOMGD_get_constant_random_id */

/*
 * New Method: is_identical
 */
typedef boolean   SOMLINK somTP_CosObjectIdentity_IdentifiableObject_is_identical(CosObjectIdentity_IdentifiableObject somSelf, Environment *ev, 
		CosObjectIdentity_IdentifiableObject other_object);
typedef somTP_CosObjectIdentity_IdentifiableObject_is_identical *somTD_CosObjectIdentity_IdentifiableObject_is_identical;
#define somMD_CosObjectIdentity_IdentifiableObject_is_identical "::CosObjectIdentity::IdentifiableObject::is_identical"
#define CosObjectIdentity_IdentifiableObject_is_identical(somSelf,ev,other_object) \
    (SOM_Resolve(somSelf, CosObjectIdentity_IdentifiableObject, is_identical) \
	(somSelf,ev,other_object))
#ifndef SOMGD_is_identical
    #if (defined(_is_identical) || defined(__is_identical))
        #undef _is_identical
        #undef __is_identical
        #define SOMGD_is_identical 1
    #else
        #define _is_identical CosObjectIdentity_IdentifiableObject_is_identical
    #endif /* _is_identical */
#endif /* SOMGD_is_identical */

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define CosObjectIdentity_IdentifiableObject_somDefaultInit SOMObject_somDefaultInit
#define CosObjectIdentity_IdentifiableObject_somDestruct SOMObject_somDestruct

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define CosObjectIdentity_IdentifiableObject_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define CosObjectIdentity_IdentifiableObject_somDefaultAssign SOMObject_somDefaultAssign
#define CosObjectIdentity_IdentifiableObject_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define CosObjectIdentity_IdentifiableObject_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define CosObjectIdentity_IdentifiableObject_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define CosObjectIdentity_IdentifiableObject_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define CosObjectIdentity_IdentifiableObject_somDefaultVAssign SOMObject_somDefaultVAssign
#define CosObjectIdentity_IdentifiableObject_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define CosObjectIdentity_IdentifiableObject_somInit SOMObject_somInit
#define CosObjectIdentity_IdentifiableObject_somUninit SOMObject_somUninit
#define CosObjectIdentity_IdentifiableObject_somFree SOMObject_somFree
#define CosObjectIdentity_IdentifiableObject_somGetClass SOMObject_somGetClass
#define CosObjectIdentity_IdentifiableObject_somGetClassName SOMObject_somGetClassName
#define CosObjectIdentity_IdentifiableObject_somGetSize SOMObject_somGetSize
#define CosObjectIdentity_IdentifiableObject_somIsA SOMObject_somIsA
#define CosObjectIdentity_IdentifiableObject_somIsInstanceOf SOMObject_somIsInstanceOf
#define CosObjectIdentity_IdentifiableObject_somRespondsTo SOMObject_somRespondsTo
#define CosObjectIdentity_IdentifiableObject_somDispatch SOMObject_somDispatch
#define CosObjectIdentity_IdentifiableObject_somClassDispatch SOMObject_somClassDispatch
#define CosObjectIdentity_IdentifiableObject_somCastObj SOMObject_somCastObj
#define CosObjectIdentity_IdentifiableObject_somResetObj SOMObject_somResetObj
#define CosObjectIdentity_IdentifiableObject_somPrintSelf SOMObject_somPrintSelf
#define CosObjectIdentity_IdentifiableObject_somDumpSelf SOMObject_somDumpSelf
#define CosObjectIdentity_IdentifiableObject_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_CosObjectIdentity_IdentifiableObject_h */
