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

#ifndef SOM_Module_somap_somAttributePersistence_defined
#define SOM_Module_somap_somAttributePersistence_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 Container
    #define Container SOMObject
#endif /* Container */
#ifndef ExtendedNaming_PropertyBindingIterator
    #define ExtendedNaming_PropertyBindingIterator SOMObject
#endif /* ExtendedNaming_PropertyBindingIterator */
#ifndef ExtendedNaming_PropertyIterator
    #define ExtendedNaming_PropertyIterator SOMObject
#endif /* ExtendedNaming_PropertyIterator */
#ifndef ExtendedNaming_IndexIterator
    #define ExtendedNaming_IndexIterator SOMObject
#endif /* ExtendedNaming_IndexIterator */
#ifndef SOMDObject
    #define SOMDObject SOMObject
#endif /* SOMDObject */
#ifndef Principal
    #define Principal SOMObject
#endif /* Principal */
#ifndef ImplementationDef
    #define ImplementationDef SOMObject
#endif /* ImplementationDef */
#ifndef InterfaceDef
    #define InterfaceDef SOMObject
#endif /* InterfaceDef */
#ifndef NVList
    #define NVList SOMObject
#endif /* NVList */
#ifndef Context
    #define Context SOMObject
#endif /* Context */
#ifndef Request
    #define Request SOMObject
#endif /* Request */
#ifndef CosObjectIdentity_IdentifiableObject
    #define CosObjectIdentity_IdentifiableObject SOMObject
#endif /* CosObjectIdentity_IdentifiableObject */
#ifndef somAttributePersistence_Persist
    #define somAttributePersistence_Persist SOMObject
#endif /* somAttributePersistence_Persist */
#ifndef somAttributePersistence_Persist
    #define somAttributePersistence_Persist SOMObject
#endif /* somAttributePersistence_Persist */

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

#ifndef SOM_somAttributePersistence_Persist_h
#define SOM_somAttributePersistence_Persist_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_somos_somap
#ifdef SOM_DLL_somos
	/* export semantics */
	#if defined(SOM_DEFFILE_somos)\
	||(defined(SOM_DEFFILE_BY_DEFAULT)&&!defined(SOM_NODEFFILE_somos))\
	|| !defined(SOM_Module_somap_Source)
	#define SOM_IMPORTEXPORT_somos_somap
	#else
	#define SOM_IMPORTEXPORT_somos_somap SOMDLLEXPORT
	#endif
#else
	#define SOM_IMPORTEXPORT_somos_somap 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 somAttributePersistence_Persist
#define somAttributePersistence_Persist SOMObject
#endif

/*
 * Include Parent Bindings
 */
#ifndef SOM_TypecodeDataManipulator_h
#ifdef SOMLOCALINCLUDES
#include "somtdm.h"
#else
#include <somtdm.h>
#endif
#endif
#ifndef SOM_somOS_ServiceBasePRef_h
#ifdef SOMLOCALINCLUDES
#include "somos.h"
#else
#include <somos.h>
#endif
#endif

/*
 * Start of bindings for IDL types
 */


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

#define somAttributePersistence_Persist_MajorVersion 3
#define somAttributePersistence_Persist_MinorVersion 0

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

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct somAttributePersistence_PersistClassDataStructure {
	SOMClass classObject;
	somMToken load_attribute;
	somMToken store_attribute;
} SOM_IMPORTEXPORT_somos_somap SOMDLINK somAttributePersistence_PersistClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct somAttributePersistence_PersistCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOM_IMPORTEXPORT_somos_somap SOMDLINK somAttributePersistence_PersistCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_somAttributePersistence_Persist (somAttributePersistence_PersistClassData.classObject)
#ifndef SOMGD_somAttributePersistence_Persist
    #if (defined(_somAttributePersistence_Persist) || defined(__somAttributePersistence_Persist))
        #undef _somAttributePersistence_Persist
        #undef __somAttributePersistence_Persist
        #define SOMGD_somAttributePersistence_Persist 1
    #else
        #define _somAttributePersistence_Persist _SOMCLASS_somAttributePersistence_Persist
    #endif /* _somAttributePersistence_Persist */
#endif /* SOMGD_somAttributePersistence_Persist */
#define somAttributePersistence_Persist_classObj _SOMCLASS_somAttributePersistence_Persist
#define _SOMMTOKEN_somAttributePersistence_Persist(method) ((somMToken)somAttributePersistence_PersistClassData.method)

/*
 * New and Renew macros for somAttributePersistence_Persist
 */
#define somAttributePersistence_PersistNew() \
   ( _somAttributePersistence_Persist ? \
	_somNew(_somAttributePersistence_Persist) \
	: ( somAttributePersistence_PersistNewClass(\
		somAttributePersistence_Persist_MajorVersion, \
		somAttributePersistence_Persist_MinorVersion),\
	   _somNew(_somAttributePersistence_Persist)))
#define somAttributePersistence_PersistRenew(buf) \
   ( _somAttributePersistence_Persist ? \
	_somRenew(_somAttributePersistence_Persist, buf) \
	: ( somAttributePersistence_PersistNewClass(\
		somAttributePersistence_Persist_MajorVersion, \
		somAttributePersistence_Persist_MinorVersion),\
	   _somRenew(_somAttributePersistence_Persist, buf)))

/*
 * New Method: load_attribute
 */
typedef void   SOMLINK somTP_somAttributePersistence_Persist_load_attribute(somAttributePersistence_Persist somSelf, Environment *ev, 
		string attribute_name, 
		void** buffer, 
		TypeCode attribute_tc);
typedef somTP_somAttributePersistence_Persist_load_attribute *somTD_somAttributePersistence_Persist_load_attribute;
#define somMD_somAttributePersistence_Persist_load_attribute "::somAttributePersistence::Persist::load_attribute"
#define somAttributePersistence_Persist_load_attribute(somSelf,ev,attribute_name,buffer,attribute_tc) \
    (SOM_Resolve(somSelf, somAttributePersistence_Persist, load_attribute) \
	(somSelf,ev,attribute_name,buffer,attribute_tc))
#ifndef SOMGD_load_attribute
    #if (defined(_load_attribute) || defined(__load_attribute))
        #undef _load_attribute
        #undef __load_attribute
        #define SOMGD_load_attribute 1
    #else
        #define _load_attribute somAttributePersistence_Persist_load_attribute
    #endif /* _load_attribute */
#endif /* SOMGD_load_attribute */

/*
 * New Method: store_attribute
 */
typedef void   SOMLINK somTP_somAttributePersistence_Persist_store_attribute(somAttributePersistence_Persist somSelf, Environment *ev, 
		string attribute_name, 
		void* buffer, 
		TypeCode attribute_tc);
typedef somTP_somAttributePersistence_Persist_store_attribute *somTD_somAttributePersistence_Persist_store_attribute;
#define somMD_somAttributePersistence_Persist_store_attribute "::somAttributePersistence::Persist::store_attribute"
#define somAttributePersistence_Persist_store_attribute(somSelf,ev,attribute_name,buffer,attribute_tc) \
    (SOM_Resolve(somSelf, somAttributePersistence_Persist, store_attribute) \
	(somSelf,ev,attribute_name,buffer,attribute_tc))
#ifndef SOMGD_store_attribute
    #if (defined(_store_attribute) || defined(__store_attribute))
        #undef _store_attribute
        #undef __store_attribute
        #define SOMGD_store_attribute 1
    #else
        #define _store_attribute somAttributePersistence_Persist_store_attribute
    #endif /* _store_attribute */
#endif /* SOMGD_store_attribute */

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define somAttributePersistence_Persist_somDefaultInit SOMObject_somDefaultInit
#define somAttributePersistence_Persist_somDestruct SOMObject_somDestruct
#define somAttributePersistence_Persist_init_for_object_creation somOS_ServiceBase_init_for_object_creation
#define somAttributePersistence_Persist_uninit_for_object_destruction somOS_ServiceBase_uninit_for_object_destruction
#define somAttributePersistence_Persist_reinit somOS_ServiceBase_reinit
#define somAttributePersistence_Persist_capture somOS_ServiceBase_capture
#define somAttributePersistence_Persist_init_for_object_reactivation somOS_ServiceBase_init_for_object_reactivation
#define somAttributePersistence_Persist_init_for_object_copy somOS_ServiceBase_init_for_object_copy
#define somAttributePersistence_Persist_uninit_for_object_move somOS_ServiceBase_uninit_for_object_move
#define somAttributePersistence_Persist_uninit_for_object_passivation somOS_ServiceBase_uninit_for_object_passivation

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define somAttributePersistence_Persist_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define somAttributePersistence_Persist_somDefaultAssign SOMObject_somDefaultAssign
#define somAttributePersistence_Persist_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define somAttributePersistence_Persist_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define somAttributePersistence_Persist_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define somAttributePersistence_Persist_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define somAttributePersistence_Persist_somDefaultVAssign SOMObject_somDefaultVAssign
#define somAttributePersistence_Persist_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define somAttributePersistence_Persist_somInit SOMObject_somInit
#define somAttributePersistence_Persist_somUninit SOMObject_somUninit
#define somAttributePersistence_Persist_somFree SOMObject_somFree
#define somAttributePersistence_Persist_somGetClass SOMObject_somGetClass
#define somAttributePersistence_Persist_somGetClassName SOMObject_somGetClassName
#define somAttributePersistence_Persist_somGetSize SOMObject_somGetSize
#define somAttributePersistence_Persist_somIsA SOMObject_somIsA
#define somAttributePersistence_Persist_somIsInstanceOf SOMObject_somIsInstanceOf
#define somAttributePersistence_Persist_somRespondsTo SOMObject_somRespondsTo
#define somAttributePersistence_Persist_somDispatch SOMObject_somDispatch
#define somAttributePersistence_Persist_somClassDispatch SOMObject_somClassDispatch
#define somAttributePersistence_Persist_somCastObj SOMObject_somCastObj
#define somAttributePersistence_Persist_somResetObj SOMObject_somResetObj
#define somAttributePersistence_Persist_somPrintSelf SOMObject_somPrintSelf
#define somAttributePersistence_Persist_somDumpSelf SOMObject_somDumpSelf
#define somAttributePersistence_Persist_somDumpSelfInt SOMObject_somDumpSelfInt
#define somAttributePersistence_Persist_GetInstanceManager somOS_ServiceBase_GetInstanceManager
#define somAttributePersistence_Persist_is_identical CosObjectIdentity_IdentifiableObject_is_identical
#define somAttributePersistence_Persist__get_constant_random_id CosObjectIdentity_IdentifiableObject__get_constant_random_id
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_somAttributePersistence_Persist_h */
