
#ifndef SOM_Hello_xih
#define SOM_Hello_xih

#if defined(__IBMC__) && (__IBMC__ >= 300)
  #pragma info(none)
#else
  #if defined(__IBMC__)
     #pragma checkout(suspend)
  #endif
#endif


/*
 * Set the scope of method functions
 */
#ifndef SOM_Scope
#define SOM_Scope static 
#endif

#ifndef SOM_Hello_xh
#include "hello.xh"
#endif
#include <somcsr.h>

/*
 * -- Instance Data
 */
typedef struct {
	string hellomsg;
} __somC_Hello_ProtectedPrivateData;
typedef __somC_Hello_ProtectedPrivateData HelloData, *HelloDataPtr;

/*
 * -- GetData Macro
 */
typedef HelloDataPtr SOMLINK somTP_Hello_DataThunk(void*);
typedef somTP_Hello_DataThunk *somTD_Hello_DataThunk;

#define HelloGetData(somSelf) \
   (((somTD_Hello_DataThunk)(HelloCClassData.instanceDataToken))(somSelf))
#ifdef VARIABLE_MACROS
#define _hellomsg somThis->hellomsg
#endif


/*
 * -- Method Macros for use in Method Procedures
 */
#ifdef METHOD_MACROS
  #define _somDefaultInit somSelf->somDefaultInit
  #define _somDestruct somSelf->somDestruct
  #define _somDefaultCopyInit somSelf->somDefaultCopyInit
  #define _somDefaultAssign somSelf->somDefaultAssign
  #define _somDefaultConstCopyInit somSelf->somDefaultConstCopyInit
  #define _somDefaultVCopyInit somSelf->somDefaultVCopyInit
  #define _somDefaultConstVCopyInit somSelf->somDefaultConstVCopyInit
  #define _somDefaultConstAssign somSelf->somDefaultConstAssign
  #define _somDefaultVAssign somSelf->somDefaultVAssign
  #define _somDefaultConstVAssign somSelf->somDefaultConstVAssign
  #define _somInit somSelf->somInit
  #define _somUninit somSelf->somUninit
  #define _somFree somSelf->somFree
  #define _somGetClass somSelf->somGetClass
  #define _somGetClassName somSelf->somGetClassName
  #define _somGetSize somSelf->somGetSize
  #define _somIsA somSelf->somIsA
  #define _somIsInstanceOf somSelf->somIsInstanceOf
  #define _somRespondsTo somSelf->somRespondsTo
  #define _somDispatch somSelf->somDispatch
  #define _somClassDispatch somSelf->somClassDispatch
  #define _somCastObj somSelf->somCastObj
  #define _somResetObj somSelf->somResetObj
  #define _somPrintSelf somSelf->somPrintSelf
  #define _somDumpSelf somSelf->somDumpSelf
  #define _somDumpSelfInt somSelf->somDumpSelfInt
  #define _hello_ somSelf->hello_
  #define __get_hellomsg somSelf->_get_hellomsg
  #define __set_hellomsg somSelf->_set_hellomsg
  #define _somInit somSelf->somInit
#endif /* METHOD_MACROS */


/*
 * -- Primary Implementation File Support
 */
#if (defined(Hello_Class_Source) || defined(SOM_Module_hello_Source))

#ifndef HelloMethodDebug
   #define HelloMethodDebug(c,m) SOMMethodDebug(c,m)
#endif  /* HelloMethodDebug */

static void SOMLINK __somC_Hello_classInit(SOMClass *cls);


/*
 * Init ClassData Structures
 */
struct HelloClassDataStructure SOMDLLEXPORT SOMDLINK HelloClassData = {0};
struct HelloCClassDataStructure SOMDLLEXPORT SOMDLINK HelloCClassData = {0};


/*
 * Identifiers
 */
static char __somC_Strings_Hello0[] = {"Hello"}; /* class name */
static char __somC_Strings_Hello1[] = {"hello_"}; /* method name */
static char __somC_Strings_Hello2[] = {"_get_hellomsg"}; /* method name */
static char __somC_Strings_Hello3[] = {"_set_hellomsg"}; /* method name */
static char __somC_Strings_Hello4[] = {"M_Hello"}; /* explicit metaclass name */
static char __somC_Strings_Hello5[] = {"SOMObject"}; /* parent name */
static char __somC_Strings_Hello6[] = {"somInit"}; /* overridden method name */
static char * __somC_Hello_regIdsArray[] = {
	__somC_Strings_Hello0,
#ifndef __somC_Hello_regIds_hello_
#define __somC_Hello_regIds_hello_ 1
#endif
	__somC_Strings_Hello1,
#ifndef __somC_Hello_regIds__get_hellomsg
#define __somC_Hello_regIds__get_hellomsg 2
#endif
	__somC_Strings_Hello2,
#ifndef __somC_Hello_regIds__set_hellomsg
#define __somC_Hello_regIds__set_hellomsg 3
#endif
	__somC_Strings_Hello3,
	__somC_Strings_Hello4,
	__somC_Strings_Hello5,
#ifndef __somC_Hello_regIds_somInit
#define __somC_Hello_regIds_somInit 6
#endif
	__somC_Strings_Hello6
};


/*
 * Overridden method: somInit
 */
SOM_Scope void  SOMLINK somInit(Hello *somSelf);
typedef void   SOMLINK somTP_xih_Hello_somInit(Hello *somSelf);
typedef somTP_xih_Hello_somInit *somTD_xih_Hello_somInit;
/* pcalls for somInit/somUninit are turned off */
#define Hello_parent_SOMObject_somInit(__somSelf) 
#ifndef parent_SOMObject_somInit
   #define parent_SOMObject_somInit(__somSelf) 
#endif
#ifndef parent_somInit
   #define parent_somInit(__somSelf) 
#endif
#define Hello_parents_somInit(__somSelf) 

/*
 * New Method: hello_
 */
SOM_Scope string  SOMLINK hello_(Hello *somSelf);
#ifndef somId_hello_
#define somId_hello_ ((somId)&(__somC_Hello_regIdsArray[__somC_Hello_regIds_hello_]))
#endif
/* Contract specification:
[CALLTYPE_OIDL (1)][RESULT][VERSION 0]
RESULT[out]: String
*/
#define hello__somMethodInfoValue 0
#define hello__somApplyStubValue 0x940105
#define hello__somHasMPlan 24

/*
 * New Method: _get_hellomsg
 */
SOM_Scope string  SOMLINK _get_hellomsg(Hello *somSelf);
/*
 * Method from the IDL attribute statement:
 * "attribute string hellomsg"
 */
#ifndef somId__get_hellomsg
#define somId__get_hellomsg ((somId)&(__somC_Hello_regIdsArray[__somC_Hello_regIds__get_hellomsg]))
#endif
/* Contract specification:
[CALLTYPE_OIDL (1)][RESULT][VERSION 0]
RESULT[out]: String
*/
#define _get_hellomsg_somMethodInfoValue 0
#define _get_hellomsg_somApplyStubValue 0x940105
#define _get_hellomsg_somHasMPlan 24

/*
 * New Method: _set_hellomsg
 */
SOM_Scope void  SOMLINK _set_hellomsg(Hello *somSelf,
		string hellomsg);
/*
 * Method from the IDL attribute statement:
 * "attribute string hellomsg"
 */
#ifndef somId__set_hellomsg
#define somId__set_hellomsg ((somId)&(__somC_Hello_regIdsArray[__somC_Hello_regIds__set_hellomsg]))
#endif
#define SOM_MPR_MINFO__set_hellomsg {0, 8, 0}
static somMpRowMethodInfo Hello__set_hellomsg_mp_minfoRow = {{0, SOM_MP_ROWTYPE_METHODINFO}, SOM_MPR_MINFO__set_hellomsg};
#ifndef DEFINEDHello__set_hellomsg_mp
#define DEFINEDHello__set_hellomsg_mp
/*[ ::Hello::_set_hellomsg Hello__set_hellomsg_mp ]*/
/* Contract specification:
[CALLTYPE_OIDL (1)][VERSION 0]
ARG 0[in]: String
*/
static struct { void * rows; unsigned char csr[4]; } Hello__set_hellomsg_mp={&Hello__set_hellomsg_mp_minfoRow, {
0x81, 0x01, 0x54},
};
#endif
#define _set_hellomsg_somMethodInfoValue 0
#define _set_hellomsg_somApplyStubValue &Hello__set_hellomsg_mp.csr
#define _set_hellomsg_somHasMPlan 8

/*
 * Functions for attributes.
 */
SOM_Scope string  SOMLINK _get_hellomsg(Hello *somSelf){
    HelloData *somThis = HelloGetData(somSelf);

    return  (somThis->hellomsg);
}
SOM_Scope void  SOMLINK _set_hellomsg(Hello *somSelf,
		string hellomsg){
    HelloData *somThis = HelloGetData(somSelf);

    (somThis->hellomsg) = hellomsg;
}

/*
 * Special Method Support
 */

/*
 * -- Routines and Structures to create the class object
 */
static SOMClass ** __somC_Hello_parentArray[] = {
	NULL,
};

void * __somC_Hello_parentMtabs[1];

somMethodDefn __somC_Hello_newNDMethodsArray[] = {
	{  (0 | hello__somHasMPlan), 0, (somMToken)0, (somMethodPtr)hello_, 
	   0, (somMethodPtr)hello__somApplyStubValue, 
	   (somMethodInfo *) hello__somMethodInfoValue, &HelloClassData.hello_, 0, 1 },
	{  (0 | _get_hellomsg_somHasMPlan), 0, (somMToken)0, (somMethodPtr)_get_hellomsg, 
	   0, (somMethodPtr)_get_hellomsg_somApplyStubValue, 
	   (somMethodInfo *) _get_hellomsg_somMethodInfoValue, &HelloClassData._get_hellomsg, 0, 1 },
	{  (0 | _set_hellomsg_somHasMPlan), 0, (somMToken)0, (somMethodPtr)_set_hellomsg, 
	   0, (somMethodPtr)_set_hellomsg_somApplyStubValue, 
	   (somMethodInfo *) _set_hellomsg_somMethodInfoValue, &HelloClassData._set_hellomsg, 0, 1 }
};

static somOverrideMethod_t2 __somC_Hello_overridesArray[] = {
{ &(__somC_Hello_regIdsArray[__somC_Hello_regIds_somInit]), 
#ifdef SOMPCALLHello_somInit
   (somMethodPtr*)&Hello_pcall_somInit_resolved, 
   (somMethodPtr)Hello_pcallResolve_somInit, 
#else
   (somMethodPtr*)0, 
   (somMethodPtr)0, 
#endif
(somMethodPtr)somInit }
};

static somClassVars1 __somC_Hello_classVars1 = {
	1,		/* layoutVersion */
	(void *)NULL,	/* extension */
	sizeof(HelloData),	/* dataSize */
	4,		/* type code dataAlignment */
	(somMethodPtr)0,	/* classAllocate */
	(somMethodPtr)0	/* classDeallocate */
};

static struct HelloClassDataStructure __somC_Hello_resolvedMTokens;
static void * __somC_Hello_unsharedClassVariablesPtr = 0;
extern som3ClassInfoStruct __somC_Hello_ClassInfo; /* C++ forward reference */

static SOM_CIB Hello_ClassInitBlock = {
	1,	/* layoutVersion */
	&__somC_Hello_classVars1,
	&__somC_Hello_unsharedClassVariablesPtr,	/* unsharedVars */
	Hello_MajorVersion,
	Hello_MinorVersion,
	0x40004,	/* constFlags */
	0xFFFFFFFF,	/* inheritVars */
	NULL,	/* classMeta */
	(somMethodPtr) __somC_Hello_classInit,	/* classInit */
	(somMethodPtr) 0,	/* classUninit */
	(somMethodPtr) somInit,	/* legacyInit */
	(somMethodPtr) 0,	/* legacyUninit */
	(somMethodPtr) 0,	/* udaAssign */
	(somMethodPtr) 0,	/* udaConstAssign */
	0,	/* protectedDataOffset */
	0,	/* numEmbeddedObjs */
	0,	/* embeddedObjs */
	7,	/* numRegIds */
	__somC_Hello_regIdsArray,	/* regIds */
	((sizeof(struct HelloClassDataStructure) - sizeof(SOMClass *))/sizeof(somMToken)),	/* numClassDataEntries */
	(somClassDataStructurePtr)&HelloClassData,
	(somCClassDataStructurePtr)&HelloCClassData,
	&__somC_Hello_ClassInfo,
	1,	/* numParents */
	(SOMClass***)__somC_Hello_parentArray,	/* parents */
	1,	/* numDirectInitClasses */
	(SOMClass***)__somC_Hello_parentArray,	/* directInitClasses */
	0,	/* numNewInitializers */
	0,	/* newInitializerSymbols */
	0,	/* numOvInitializers */
	0,	/* ovInitializerSymbols */
	0,	/* special overrides */
	3,	/* maxNDMethods */
	__somC_Hello_newNDMethodsArray,	/* newNDMethods */
	1,	/* numOverrides */
	__somC_Hello_overridesArray,	/* overrides */
	0,	/* numInheritedSelections */
	0,	/* inheritedSelections */
	0,	/* numMigratedMethods */
	0 	/* migratedMethods */
};	/* CIB */
static som3ClassDetails __somC_Hello_ClassDetails = {
	(somMethodTabPtr)NULL,	/* mtab */
	(somMethodTabPtr *)__somC_Hello_parentMtabs,	/* parentMtabs */
	&Hello_ClassInitBlock,	/* ClassInitBlock address */
	(somTD_somRenewNoInitNoZeroThunk)0,	/* somRenewNoInitNoZeroThunk */
	(long)0,	/* instanceSize */
	(somMethodProc**)NULL,	/* resolvedInits */
	(somClassDataStructure *)&__somC_Hello_resolvedMTokens,	/* resolvedMTokens */
	{0,0,0,0},	/* initCtrl */
	{0,0,0,0},	/* destructCtrl */
	{0,0,0,0},	/* assignCtrl */
	(long)1,	/* layoutVersion */
	(void*)NULL,	/* extension */
	(somDToken)NULL,	/* publicDataToken */
	(somDToken)NULL,	/* protectedDataToken */
};
som3ClassInfoStruct __somC_Hello_ClassInfo = {
	0,	/* classObject */
	&__somC_Hello_ClassDetails	/* class details */
};


/*
 * Class Creation and Initialization
 */

#if defined(__IBMC__) && (defined(__OS2__) || defined(_WIN32)) && !defined(SOM_PREWARP)
#pragma alloc_text (SEG0002, __somC_Hello_classInit)
#pragma alloc_text (SEG0002, HelloNewClass)
#endif

/* classinit function */
SOM_Scope void SOMLINK __somC_Hello_classInit(SOMClass *somSelf)
{
   SOM_IgnoreWarning(somSelf);
}

/* NewClass Function */
SOMEXTERN SOMDLLEXPORT M_Hello * SOMLINK  HelloNewClass (long reqMajorVersion, long reqMinorVersion)
{
    if (_SOMCLASS_Hello && _SOMCLASS_Hello->somCheckVersion(reqMajorVersion, reqMinorVersion))
          return ((M_Hello*)((void*)_SOMCLASS_Hello));
__somC_Hello_parentArray[0] = (SOMClass **)&_SOMCLASS_SOMObject;
Hello_ClassInitBlock.classMeta= 
	(SOMClass **)&M_HelloClassData.classObject;	/* classMeta */
   /* require parents */
   if (!_SOMCLASS_SOMObject) SOMObjectNewClass(SOMObject_MajorVersion,SOMObject_MinorVersion);
   /* require metaclass */
   if (!_SOMCLASS_M_Hello) M_HelloNewClass(M_Hello_MajorVersion,M_Hello_MinorVersion);
   /* return new class */
   return ((M_Hello*)(void*)somBuildClass2(&Hello_ClassInitBlock, reqMajorVersion, reqMinorVersion));
}

#if defined(__IBMC__) && (__IBMC__ >= 300)
  #pragma info(restore)
#else
  #if defined(__IBMC__)
    #pragma checkout(resume)
  #endif
#endif



#endif /* Primary Implementation Support */

#endif       /* SOM_Hello_xih */

#ifndef SOM_M_Hello_xih
#define SOM_M_Hello_xih

#if defined(__IBMC__) && (__IBMC__ >= 300)
  #pragma info(none)
#else
  #if defined(__IBMC__)
     #pragma checkout(suspend)
  #endif
#endif


/*
 * Set the scope of method functions
 */
#ifndef SOM_Scope
#define SOM_Scope static 
#endif

#ifndef SOM_M_Hello_xh
#include "hello.xh"
#endif
#include <somcsr.h>

/*
 * -- Instance Data
 */
typedef void M_HelloData;
#define __somC_M_Hello_NODATA

/*
 * This class introduces no instance data, so no GetData macro is provided
 */

/*
 * -- Method Macros for use in Method Procedures
 */
#ifdef METHOD_MACROS
  #define _somNew somSelf->somNew
  #define _somNewNoInit somSelf->somNewNoInit
  #define _somRenew somSelf->somRenew
  #define _somRenewNoInit somSelf->somRenewNoInit
  #define _somRenewNoZero somSelf->somRenewNoZero
  #define _somRenewNoInitNoZero somSelf->somRenewNoInitNoZero
  #define _somAllocate somSelf->somAllocate
  #define _somDeallocate somSelf->somDeallocate
  #define _somJoin somSelf->somJoin
  #define _somEndow somSelf->somEndow
  #define _somClassOfNewClassWithParents somSelf->somClassOfNewClassWithParents
  #define _somInitMIClass somSelf->somInitMIClass
  #define _somAddStaticMethod somSelf->somAddStaticMethod
  #define _somOverrideSMethod somSelf->somOverrideSMethod
  #define _somClassReady somSelf->somClassReady
  #define _somAddDynamicMethod somSelf->somAddDynamicMethod
  #define _somGetName somSelf->somGetName
  #define _somGetVersionNumbers somSelf->somGetVersionNumbers
  #define _somGetNumMethods somSelf->somGetNumMethods
  #define _somGetNumStaticMethods somSelf->somGetNumStaticMethods
  #define _somGetParents somSelf->somGetParents
  #define _somGetInstanceSize somSelf->somGetInstanceSize
  #define _somGetInstancePartSize somSelf->somGetInstancePartSize
  #define _somGetInstanceToken somSelf->somGetInstanceToken
  #define _somGetMemberToken somSelf->somGetMemberToken
  #define _somGetClassMtab somSelf->somGetClassMtab
  #define _somGetClassData somSelf->somGetClassData
  #define _somSetClassData somSelf->somSetClassData
  #define __get_somDataAlignment somSelf->_get_somDataAlignment
  #define __get_somInstanceDataOffsets somSelf->_get_somInstanceDataOffsets
  #define __get_somDirectInitClasses somSelf->_get_somDirectInitClasses
  #define _somGetMethodDescriptor somSelf->somGetMethodDescriptor
  #define _somGetMethodIndex somSelf->somGetMethodIndex
  #define _somGetMethodToken somSelf->somGetMethodToken
  #define _somGetNthMethodInfo somSelf->somGetNthMethodInfo
  #define _somGetMarshalPlan somSelf->somGetMarshalPlan
  #define _somGetMethodData somSelf->somGetMethodData
  #define _somGetNthMethodData somSelf->somGetNthMethodData
  #define _somFindMethod somSelf->somFindMethod
  #define _somFindMethodOk somSelf->somFindMethodOk
  #define _somFindSMethod somSelf->somFindSMethod
  #define _somFindSMethodOk somSelf->somFindSMethodOk
  #define _somLookupMethod somSelf->somLookupMethod
  #define _somGetApplyStub somSelf->somGetApplyStub
  #define _somGetPClsMtab somSelf->somGetPClsMtab
  #define _somCheckVersion somSelf->somCheckVersion
  #define _somDescendedFrom somSelf->somDescendedFrom
  #define _somSupportsMethod somSelf->somSupportsMethod
  #define _somDefinedMethod somSelf->somDefinedMethod
  #define _somMethodImplOwner somSelf->somMethodImplOwner
  #define _somGetRdStub somSelf->somGetRdStub
  #define _somOverrideMtab somSelf->somOverrideMtab
  #define _somDefaultInit somSelf->somDefaultInit
  #define _somDestruct somSelf->somDestruct
  #define _somDefaultCopyInit somSelf->somDefaultCopyInit
  #define _somDefaultAssign somSelf->somDefaultAssign
  #define _somDefaultConstCopyInit somSelf->somDefaultConstCopyInit
  #define _somDefaultVCopyInit somSelf->somDefaultVCopyInit
  #define _somDefaultConstVCopyInit somSelf->somDefaultConstVCopyInit
  #define _somDefaultConstAssign somSelf->somDefaultConstAssign
  #define _somDefaultVAssign somSelf->somDefaultVAssign
  #define _somDefaultConstVAssign somSelf->somDefaultConstVAssign
  #define _somInit somSelf->somInit
  #define _somUninit somSelf->somUninit
  #define _somFree somSelf->somFree
  #define _somGetClass somSelf->somGetClass
  #define _somGetClassName somSelf->somGetClassName
  #define _somGetSize somSelf->somGetSize
  #define _somIsA somSelf->somIsA
  #define _somIsInstanceOf somSelf->somIsInstanceOf
  #define _somRespondsTo somSelf->somRespondsTo
  #define _somDispatch somSelf->somDispatch
  #define _somClassDispatch somSelf->somClassDispatch
  #define _somCastObj somSelf->somCastObj
  #define _somResetObj somSelf->somResetObj
  #define _somPrintSelf somSelf->somPrintSelf
  #define _somDumpSelf somSelf->somDumpSelf
  #define _somDumpSelfInt somSelf->somDumpSelfInt
  #define _HelloCreate somSelf->HelloCreate
  #define _somInit somSelf->somInit
#endif /* METHOD_MACROS */


/*
 * -- Primary Implementation File Support
 */
#if (defined(Hello_Class_Source) || defined(M_Hello_Class_Source) || defined(SOM_Module_hello_Source))

#ifndef M_HelloMethodDebug
   #define M_HelloMethodDebug(c,m) SOMMethodDebug(c,m)
#endif  /* M_HelloMethodDebug */

static void SOMLINK __somC_M_Hello_classInit(SOMClass *cls);


/*
 * Init ClassData Structures
 */
struct M_HelloClassDataStructure SOMDLLEXPORT SOMDLINK M_HelloClassData = {0};
struct M_HelloCClassDataStructure SOMDLLEXPORT SOMDLINK M_HelloCClassData = {0};


/*
 * Identifiers
 */
static char __somC_Strings_M_Hello0[] = {"M_Hello"}; /* class name */
static char __somC_Strings_M_Hello1[] = {"HelloCreate"}; /* method name */
static char __somC_Strings_M_Hello2[] = {"SOMClass"}; /* parent name */
static char __somC_Strings_M_Hello3[] = {"somInit"}; /* overridden method name */
static char * __somC_M_Hello_regIdsArray[] = {
	__somC_Strings_M_Hello0,
#ifndef __somC_M_Hello_regIds_HelloCreate
#define __somC_M_Hello_regIds_HelloCreate 1
#endif
	__somC_Strings_M_Hello1,
	__somC_Strings_M_Hello2,
#ifndef __somC_M_Hello_regIds_somInit
#define __somC_M_Hello_regIds_somInit 3
#endif
	__somC_Strings_M_Hello3
};


/*
 * Overridden method: somInit
 */
SOM_Scope void  SOMLINK M_somInit(M_Hello *somSelf);
typedef void   SOMLINK somTP_xih_M_Hello_somInit(M_Hello *somSelf);
typedef somTP_xih_M_Hello_somInit *somTD_xih_M_Hello_somInit;
/* pcalls for somInit/somUninit are turned off */
#define M_Hello_parent_SOMClass_somInit(__somSelf) 
#ifndef parent_SOMClass_somInit
   #define parent_SOMClass_somInit(__somSelf) 
#endif
#ifndef parent_somInit
   #define parent_somInit(__somSelf) 
#endif
#define M_Hello_parents_somInit(__somSelf) 

/*
 * New Method: HelloCreate
 */
SOM_Scope Hello*  SOMLINK M_HelloCreate(M_Hello *somSelf,
		string msg);
/*
 *  This method creates an instance of the Hello class and
 *  uses the value of "msg" to initialise it.
 */
#ifndef somId_HelloCreate
#define somId_HelloCreate ((somId)&(__somC_M_Hello_regIdsArray[__somC_M_Hello_regIds_HelloCreate]))
#endif
#define SOM_MPR_MINFO_M_HelloCreate {0, 8, 0}
static somMpRowMethodInfo M_Hello_HelloCreate_mp_minfoRow = {{0, SOM_MP_ROWTYPE_METHODINFO}, SOM_MPR_MINFO_M_HelloCreate};
#ifndef DEFINEDM_Hello_HelloCreate_mp
#define DEFINEDM_Hello_HelloCreate_mp
/*[ ::M_Hello::HelloCreate M_Hello_HelloCreate_mp ]*/
/* Contract specification:
[CALLTYPE_OIDL (1)][RESULT][VERSION 0]
RESULT[out]: ObjREF
ARG 1[in]: String
*/
static struct { void * rows; unsigned char csr[4]; } M_Hello_HelloCreate_mp={&M_Hello_HelloCreate_mp_minfoRow, {
0x85, 0x02, 0x96, 0x54},
};
#endif
#define M_HelloCreate_somMethodInfoValue 0
#define M_HelloCreate_somApplyStubValue &M_Hello_HelloCreate_mp.csr
#define M_HelloCreate_somHasMPlan 8

/*
 * Functions for attributes.
 */

/*
 * Special Method Support
 */

/*
 * -- Routines and Structures to create the class object
 */
static SOMClass ** __somC_M_Hello_parentArray[] = {
	NULL,
};

void * __somC_M_Hello_parentMtabs[1];

somMethodDefn __somC_M_Hello_newNDMethodsArray[] = {
	{  (0 | M_HelloCreate_somHasMPlan), 0, (somMToken)0, (somMethodPtr)M_HelloCreate, 
	   0, (somMethodPtr)M_HelloCreate_somApplyStubValue, 
	   (somMethodInfo *) M_HelloCreate_somMethodInfoValue, &M_HelloClassData.HelloCreate, 0, 1 }
};

static somOverrideMethod_t2 __somC_M_Hello_overridesArray[] = {
{ &(__somC_M_Hello_regIdsArray[__somC_M_Hello_regIds_somInit]), 
#ifdef SOMPCALLM_Hello_somInit
   (somMethodPtr*)&M_Hello_pcall_somInit_resolved, 
   (somMethodPtr)M_Hello_pcallResolve_somInit, 
#else
   (somMethodPtr*)0, 
   (somMethodPtr)0, 
#endif
(somMethodPtr)M_somInit }
};

static somClassVars1 __somC_M_Hello_classVars1 = {
	1,		/* layoutVersion */
	(void *)NULL,	/* extension */
	0,	/* dataSize */
	0,		/* type code dataAlignment */
	(somMethodPtr)0,	/* classAllocate */
	(somMethodPtr)0	/* classDeallocate */
};

static struct M_HelloClassDataStructure __somC_M_Hello_resolvedMTokens;
static void * __somC_M_Hello_unsharedClassVariablesPtr = 0;
extern som3ClassInfoStruct __somC_M_Hello_ClassInfo; /* C++ forward reference */

static SOM_CIB M_Hello_ClassInitBlock = {
	1,	/* layoutVersion */
	&__somC_M_Hello_classVars1,
	&__somC_M_Hello_unsharedClassVariablesPtr,	/* unsharedVars */
	M_Hello_MajorVersion,
	M_Hello_MinorVersion,
	0x40004,	/* constFlags */
	0xFFFFFFFF,	/* inheritVars */
	(SOMClass**)0,	/* classMeta */
	(somMethodPtr) __somC_M_Hello_classInit,	/* classInit */
	(somMethodPtr) 0,	/* classUninit */
	(somMethodPtr) M_somInit,	/* legacyInit */
	(somMethodPtr) 0,	/* legacyUninit */
	(somMethodPtr) 0,	/* udaAssign */
	(somMethodPtr) 0,	/* udaConstAssign */
	0,	/* protectedDataOffset */
	0,	/* numEmbeddedObjs */
	0,	/* embeddedObjs */
	4,	/* numRegIds */
	__somC_M_Hello_regIdsArray,	/* regIds */
	((sizeof(struct M_HelloClassDataStructure) - sizeof(SOMClass *))/sizeof(somMToken)),	/* numClassDataEntries */
	(somClassDataStructurePtr)&M_HelloClassData,
	(somCClassDataStructurePtr)&M_HelloCClassData,
	&__somC_M_Hello_ClassInfo,
	1,	/* numParents */
	(SOMClass***)__somC_M_Hello_parentArray,	/* parents */
	1,	/* numDirectInitClasses */
	(SOMClass***)__somC_M_Hello_parentArray,	/* directInitClasses */
	0,	/* numNewInitializers */
	0,	/* newInitializerSymbols */
	0,	/* numOvInitializers */
	0,	/* ovInitializerSymbols */
	0,	/* special overrides */
	1,	/* maxNDMethods */
	__somC_M_Hello_newNDMethodsArray,	/* newNDMethods */
	1,	/* numOverrides */
	__somC_M_Hello_overridesArray,	/* overrides */
	0,	/* numInheritedSelections */
	0,	/* inheritedSelections */
	0,	/* numMigratedMethods */
	0 	/* migratedMethods */
};	/* CIB */
static som3ClassDetails __somC_M_Hello_ClassDetails = {
	(somMethodTabPtr)NULL,	/* mtab */
	(somMethodTabPtr *)__somC_M_Hello_parentMtabs,	/* parentMtabs */
	&M_Hello_ClassInitBlock,	/* ClassInitBlock address */
	(somTD_somRenewNoInitNoZeroThunk)0,	/* somRenewNoInitNoZeroThunk */
	(long)0,	/* instanceSize */
	(somMethodProc**)NULL,	/* resolvedInits */
	(somClassDataStructure *)&__somC_M_Hello_resolvedMTokens,	/* resolvedMTokens */
	{0,0,0,0},	/* initCtrl */
	{0,0,0,0},	/* destructCtrl */
	{0,0,0,0},	/* assignCtrl */
	(long)1,	/* layoutVersion */
	(void*)NULL,	/* extension */
	(somDToken)NULL,	/* publicDataToken */
	(somDToken)NULL,	/* protectedDataToken */
};
som3ClassInfoStruct __somC_M_Hello_ClassInfo = {
	0,	/* classObject */
	&__somC_M_Hello_ClassDetails	/* class details */
};


/*
 * Class Creation and Initialization
 */

#if defined(__IBMC__) && (defined(__OS2__) || defined(_WIN32)) && !defined(SOM_PREWARP)
#pragma alloc_text (SEG0002, __somC_M_Hello_classInit)
#pragma alloc_text (SEG0002, M_HelloNewClass)
#endif

/* classinit function */
SOM_Scope void SOMLINK __somC_M_Hello_classInit(SOMClass *somSelf)
{
   SOM_IgnoreWarning(somSelf);
}

/* NewClass Function */
SOMEXTERN SOMDLLEXPORT SOMClass * SOMLINK  M_HelloNewClass (long reqMajorVersion, long reqMinorVersion)
{
    if (_SOMCLASS_M_Hello && _SOMCLASS_M_Hello->somCheckVersion(reqMajorVersion, reqMinorVersion))
          return ((SOMClass*)((void*)_SOMCLASS_M_Hello));
__somC_M_Hello_parentArray[0] = (SOMClass **)&_SOMCLASS_SOMClass;
   /* require parents */
   if (!_SOMCLASS_SOMClass) SOMClassNewClass(SOMClass_MajorVersion,SOMClass_MinorVersion);
   /* return new class */
   return ((SOMClass*)(void*)somBuildClass2(&M_Hello_ClassInitBlock, reqMajorVersion, reqMinorVersion));
}

#if defined(__IBMC__) && (__IBMC__ >= 300)
  #pragma info(restore)
#else
  #if defined(__IBMC__)
    #pragma checkout(resume)
  #endif
#endif



#endif /* Primary Implementation Support */

#endif       /* SOM_M_Hello_xih */
