home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
WPSDEM.ZIP
/
CMBSTDNT
/
GRADUATE.IH
< prev
next >
Wrap
Text File
|
1992-08-21
|
8KB
|
277 lines
/*
* This file was generated by the SOM Compiler.
* FileName: .\GRADUATE.ih.
* Generated using:
* SOM Precompiler spc: 1.22
* SOM Emitter emitih: 1.59
*/
#ifndef GRADUATE_ih
#define GRADUATE_ih
#include "GRADUATE.h"
/*
* Set the scope of methods functions
*/
#ifndef SOM_Scope
#define SOM_Scope static
#endif
#ifndef SOM_CurrentClass
#define SOM_CurrentClass GraduateStudentCClassData.parentMtab
#endif
#define GraduateStudent_MaxNoMethods 1
/*
* Instance data
*/
typedef struct {
char thesis[128];
char degree[16];
} GraduateStudentData;
/*
* Instance variable access macros
*/
#define _thesis (somThis->thesis)
#define _degree (somThis->degree)
/*
* Getdata macro
*/
#define GraduateStudentGetData(somSelf) \
((GraduateStudentData *) \
SOM_DataResolve(somSelf, GraduateStudentCClassData.instanceDataToken))
/*
* Trace/Debug macro
*/
#ifndef GraduateStudentMethodDebug
#define GraduateStudentMethodDebug(c,m) SOMMethodDebug(c,m)
#endif
/*
* Begin stuff that only goes in the primary file
*/
#ifdef GraduateStudent_Class_Source
/*
* Current class macros for Instance and Meta classes.
*/
#undef SOMMeta
#define SOMMeta M_GraduateStudentCClassData.parentMtab
#undef SOMInstance
#define SOMInstance GraduateStudentCClassData.parentMtab
#ifndef M_GraduateStudent_Class_Source
#define M_GraduateStudent_Class_Source
#endif /* M_GraduateStudent_Class_Source */
/*
* Generate the Apply Stubs.
*/
#pragma linkage(somAP_setUpGraduateStudent, system)
static void SOMLINK somAP_setUpGraduateStudent(GraduateStudent *somSelf,
somId __id,
somId __desc,
va_list __ap)
{
char *id = va_arg(__ap, char*);
char *name = va_arg(__ap, char*);
char *thesis = va_arg(__ap, char*);
char *degree = va_arg(__ap, char*);
__ap; __id; __desc; /* Referenced to prevent warning msg */
GraduateStudent_setUpGraduateStudent(somSelf,id,name,thesis,degree);
}
/*
* Overridden method: printStudentInfo
*/
#pragma linkage(printStudentInfo, system)
SOM_Scope void SOMLINK printStudentInfo(GraduateStudent *somSelf);
#ifndef parent_printStudentInfo
static char *somMN_printStudentInfo = "printStudentInfo";
static somId somId_printStudentInfo = &somMN_printStudentInfo;
#define parent_printStudentInfo(somSelf) \
((SOM_ParentResolveE(Student, SOM_CurrentClass, printStudentInfo)) \
(somSelf))
#endif
#define GraduateStudentParent_printStudentInfo parent_printStudentInfo
/*
* Overridden method: getStudentType
*/
#pragma linkage(getStudentType, system)
SOM_Scope char * SOMLINK getStudentType(GraduateStudent *somSelf);
#ifndef parent_getStudentType
static char *somMN_getStudentType = "getStudentType";
static somId somId_getStudentType = &somMN_getStudentType;
#define parent_getStudentType(somSelf) \
((SOM_ParentResolveE(Student, SOM_CurrentClass, getStudentType)) \
(somSelf))
#endif
#define GraduateStudentParent_getStudentType parent_getStudentType
/*
* Temporary class data structure used only in class creation
*/
static somClassDataStructure GraduateStudenttempClassData;
/*
* Initialize the class data structure
*/
struct GraduateStudentClassDataStructure GraduateStudentClassData = {(SOMAny *) NULL};
/*
* Define the C class data structure
*/
struct GraduateStudentCClassDataStructure GraduateStudentCClassData = {(somMethodTab *) NULL};
/*
* New Method: setUpGraduateStudent
*/
#pragma linkage(setUpGraduateStudent, system)
SOM_Scope void SOMLINK setUpGraduateStudent(GraduateStudent *somSelf,
char *id,
char *name,
char *thesis,
char *degree);
static char *somMN_setUpGraduateStudent = "setUpGraduateStudent";
static somId somId_setUpGraduateStudent = &somMN_setUpGraduateStudent;
static char *somDS_setUpGraduateStudent = somMD_GraduateStudent_setUpGraduateStudent;
static somId somDI_setUpGraduateStudent = &somDS_setUpGraduateStudent;
#pragma linkage(somRD_setUpGraduateStudent, system)
static void SOMLINK somRD_setUpGraduateStudent(GraduateStudent *somSelf,
char *id,
char *name,
char *thesis,
char *degree)
{
va_somDispatchV(somSelf, somId_setUpGraduateStudent,
_somGetMethodDescriptor(SOM_GetClass(somSelf),somId_setUpGraduateStudent),id,name,thesis,degree);
}
/*
* Routines to create the class object
*/
/*
* Declare the Static Methods table.
*/
static somStaticMethod_t GraduateStudentSM[] = {
{ &GraduateStudentClassData.setUpGraduateStudent,
&somId_setUpGraduateStudent,
&somDI_setUpGraduateStudent,
(somMethodProc *) setUpGraduateStudent,
(somMethodProc *) somRD_setUpGraduateStudent,
(somMethodProc *) somAP_setUpGraduateStudent },
};
/*
* Declare the Override Methods table.
*/
static somOverrideMethod_t GraduateStudentOM[] = {
{ &somId_printStudentInfo,
(somMethodProc *) printStudentInfo },
{ &somId_getStudentType,
(somMethodProc *) getStudentType },
};
static void GraduateStudentsomInitializeClass ()
{
int i;
somStaticMethod_t *smp;
somOverrideMethod_t *omp;
/*
* Add the Static Methods.
*/
for (smp = GraduateStudentSM, i = 0; i < 1; smp++, i++)
*(smp->classData) =
_somAddStaticMethod (GraduateStudenttempClassData.classObject,
*(smp->methodId), *(smp->methodDescriptor),
smp->method, smp->redispatchStub,
smp->applyStub);
/*
* Override methods.
*/
for (omp = GraduateStudentOM, i = 0; i < 2; omp++, i++)
_somOverrideSMethod (GraduateStudenttempClassData.classObject,
*(omp->methodId), omp->method);
}
#pragma linkage(GraduateStudentsomCreateClass, system)
static void SOMLINK GraduateStudentsomCreateClass(SOMClass *pClsObj,
SOMClass *mClsObj)
{
GraduateStudenttempClassData.classObject = _somNew (mClsObj);
_somInitClass (GraduateStudenttempClassData.classObject,
"GraduateStudent",
pClsObj,
sizeof(GraduateStudentData),
GraduateStudent_MaxNoMethods,
GraduateStudent_MajorVersion,
GraduateStudent_MinorVersion);
GraduateStudentCClassData.instanceDataToken =
_somGetInstanceToken(GraduateStudenttempClassData.classObject);
GraduateStudentsomInitializeClass();
GraduateStudentCClassData.parentMtab =
_somGetPClsMtab(GraduateStudenttempClassData.classObject);
_somSetClassData(GraduateStudenttempClassData.classObject, (somClassDataStructure *)&GraduateStudentClassData);
_somClassReady(GraduateStudenttempClassData.classObject);
/* make newly created class object visible */
GraduateStudentClassData.classObject = GraduateStudenttempClassData.classObject;
}
GraduateStudent * SOMLINK GraduateStudentNewClass (integer4 scemajorVersion,
integer4 sceminorVersion)
{
SOMClass *pClsObj;
SOMClass *mClsObj;
/* Check the version numbers */
if (((scemajorVersion != 0) &&
(scemajorVersion != GraduateStudent_MajorVersion)) ||
((sceminorVersion != 0) &&
(sceminorVersion > GraduateStudent_MinorVersion))) {
somPrintf("GraduateStudentNewClass: Error, bad version numbers.\n");
SOM_Error(SOMERROR_BadVersion);
}
/* Don't do anything if class object is already created. */
if (GraduateStudentClassData.classObject != (SOMAny *) NULL)
return(GraduateStudentClassData.classObject);
/* Make sure the environment is initialized. */
if (SOMClassMgrObject == (SOMAny *) NULL) somEnvironmentNew();
if (SOMClassMgrObject == (SOMAny *) NULL)
SOM_Error(SOMERROR_CouldNotStartup);
/* Get the parent class object. */
StudentNewClass(1,1); /* static reference */
pClsObj = _somFindClass(SOMClassMgrObject,
SOM_IdFromString("Student"), 1, 1);
if (pClsObj == (SOMClass *) NULL)
SOM_Error(SOMERROR_NoParentClass);
/* Use parent's metaclass */
mClsObj = SOM_GetClass(pClsObj);
somConstructClass(GraduateStudentsomCreateClass, pClsObj, mClsObj,
&GraduateStudenttempClassData);
return (GraduateStudentClassData.classObject);
}
#endif /* GraduateStudent_Class_Source */
#endif /* GRADUATE_ih */