
#ifndef SOM_PeerServer_xih
#define SOM_PeerServer_xih


#if (defined(PeerServer_Class_Source) || defined(SOM_Module_peerserv_Source))
#ifndef SOM_DLL_peerserv
#define SOM_DLL_peerserv
#endif
#endif

#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_PeerServer_xh
#include "peerserv.xh"
#endif
#include <somcsr.h>

/*
 * -- Instance Data
 */
typedef void PeerServerData;
#define __somC_PeerServer_NODATA

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

/*
 * -- 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 _noteTimeout somSelf->noteTimeout
#endif /* METHOD_MACROS */


/*
 * -- Primary Implementation File Support
 */
#if (defined(PeerServer_Class_Source) || defined(SOM_Module_peerserv_Source))

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

static void SOMLINK __somC_PeerServer_classInit(SOMClass *cls);


/*
 * Init ClassData Structures
 */
struct PeerServerClassDataStructure SOM_IMPORTEXPORT_peerserv_peerserv SOMDLINK PeerServerClassData = {0};
struct PeerServerCClassDataStructure SOM_IMPORTEXPORT_peerserv_peerserv SOMDLINK PeerServerCClassData = {0};


/*
 * Identifiers
 */
static char __somC_Strings_PeerServer0[] = {"PeerServer"}; /* class name */
static char __somC_Strings_PeerServer1[] = {"noteTimeout"}; /* method name */
static char __somC_Strings_PeerServer2[] = {"SOMObject"}; /* parent name */
static char * __somC_PeerServer_regIdsArray[] = {
	__somC_Strings_PeerServer0,
#ifndef __somC_PeerServer_regIds_noteTimeout
#define __somC_PeerServer_regIds_noteTimeout 1
#endif
	__somC_Strings_PeerServer1,
	__somC_Strings_PeerServer2
};


/*
 * New Method: noteTimeout
 */
SOM_Scope void  SOMLINK noteTimeout(PeerServer *somSelf, Environment *ev,
		string serverName1,
		string serverName2);
/*
 *  Notification that a timer event occurred for a certain server.
 */
#ifndef somId_noteTimeout
#define somId_noteTimeout ((somId)&(__somC_PeerServer_regIdsArray[__somC_PeerServer_regIds_noteTimeout]))
#endif
#define SOM_MPR_MINFO_noteTimeout {0, 16, 0}
static somMpRowMethodInfo PeerServer_noteTimeout_mp_minfoRow = {{0, SOM_MP_ROWTYPE_METHODINFO}, SOM_MPR_MINFO_noteTimeout};
#ifndef DEFINEDPeerServer_noteTimeout_mp
#define DEFINEDPeerServer_noteTimeout_mp
/*[ ::PeerServer::noteTimeout PeerServer_noteTimeout_mp ]*/
/* Contract specification:
[CALLTYPE_IDL (2)][ONEWAY][VERSION 0]
ARG 0[in]: String
ARG 1[in]: String
*/
static struct { void * rows; unsigned char csr[4]; } PeerServer_noteTimeout_mp={&PeerServer_noteTimeout_mp_minfoRow, {
0x8a, 0x02, 0x54, 0x54},
};
#endif
#define noteTimeout_somMethodInfoValue 0
#define noteTimeout_somApplyStubValue &PeerServer_noteTimeout_mp.csr
#define noteTimeout_somHasMPlan 8

/*
 * Functions for attributes.
 */

/*
 * Special Method Support
 */

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

void * __somC_PeerServer_parentMtabs[1];

somMethodDefn __somC_PeerServer_newNDMethodsArray[] = {
	{  (0 | noteTimeout_somHasMPlan), 0, (somMToken)0, (somMethodPtr)noteTimeout, 
	   0, (somMethodPtr)noteTimeout_somApplyStubValue, 
	   (somMethodInfo *) noteTimeout_somMethodInfoValue, &PeerServerClassData.noteTimeout, 0, 1 }
};

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

static struct PeerServerClassDataStructure __somC_PeerServer_resolvedMTokens;
static void * __somC_PeerServer_unsharedClassVariablesPtr = 0;
extern som3ClassInfoStruct __somC_PeerServer_ClassInfo; /* C++ forward reference */

static SOM_CIB PeerServer_ClassInitBlock = {
	1,	/* layoutVersion */
	&__somC_PeerServer_classVars1,
	&__somC_PeerServer_unsharedClassVariablesPtr,	/* unsharedVars */
	PeerServer_MajorVersion,
	PeerServer_MinorVersion,
	0x60004,	/* constFlags */
	0xFFFFFFFF,	/* inheritVars */
	(SOMClass**)0,	/* classMeta */
	(somMethodPtr) __somC_PeerServer_classInit,	/* classInit */
	(somMethodPtr) 0,	/* classUninit */
	(somMethodPtr) 0,	/* legacyInit */
	(somMethodPtr) 0,	/* legacyUninit */
	(somMethodPtr) 0,	/* udaAssign */
	(somMethodPtr) 0,	/* udaConstAssign */
	0,	/* protectedDataOffset */
	0,	/* numEmbeddedObjs */
	0,	/* embeddedObjs */
	3,	/* numRegIds */
	__somC_PeerServer_regIdsArray,	/* regIds */
	((sizeof(struct PeerServerClassDataStructure) - sizeof(SOMClass *))/sizeof(somMToken)),	/* numClassDataEntries */
	(somClassDataStructurePtr)&PeerServerClassData,
	(somCClassDataStructurePtr)&PeerServerCClassData,
	&__somC_PeerServer_ClassInfo,
	1,	/* numParents */
	(SOMClass***)__somC_PeerServer_parentArray,	/* parents */
	1,	/* numDirectInitClasses */
	(SOMClass***)__somC_PeerServer_parentArray,	/* directInitClasses */
	0,	/* numNewInitializers */
	0,	/* newInitializerSymbols */
	0,	/* numOvInitializers */
	0,	/* ovInitializerSymbols */
	0,	/* special overrides */
	1,	/* maxNDMethods */
	__somC_PeerServer_newNDMethodsArray,	/* newNDMethods */
	0,	/* numOverrides */
	0,	/* overrides */
	0,	/* numInheritedSelections */
	0,	/* inheritedSelections */
	0,	/* numMigratedMethods */
	0 	/* migratedMethods */
};	/* CIB */
static som3ClassDetails __somC_PeerServer_ClassDetails = {
	(somMethodTabPtr)NULL,	/* mtab */
	(somMethodTabPtr *)__somC_PeerServer_parentMtabs,	/* parentMtabs */
	&PeerServer_ClassInitBlock,	/* ClassInitBlock address */
	(somTD_somRenewNoInitNoZeroThunk)0,	/* somRenewNoInitNoZeroThunk */
	(long)0,	/* instanceSize */
	(somMethodProc**)NULL,	/* resolvedInits */
	(somClassDataStructure *)&__somC_PeerServer_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_PeerServer_ClassInfo = {
	0,	/* classObject */
	&__somC_PeerServer_ClassDetails	/* class details */
};


/*
 * Class Creation and Initialization
 */

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

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

/* NewClass Function */
SOMEXTERN SOM_IMPORTEXPORT_peerserv_peerserv SOMClass * SOMLINK  PeerServerNewClass (long reqMajorVersion, long reqMinorVersion)
{
    if (_SOMCLASS_PeerServer && _SOMCLASS_PeerServer->somCheckVersion(reqMajorVersion, reqMinorVersion))
          return ((SOMClass*)((void*)_SOMCLASS_PeerServer));
__somC_PeerServer_parentArray[0] = (SOMClass **)&_SOMCLASS_SOMObject;
   /* require parents */
   if (!_SOMCLASS_SOMObject) SOMObjectNewClass(SOMObject_MajorVersion,SOMObject_MinorVersion);
   /* return new class */
   return ((SOMClass*)(void*)somBuildClass2(&PeerServer_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_PeerServer_xih */
