 
#ifndef rawmssg_DEFINED
#define rawmssg_DEFINED 1
 
#include <class.h>
/* 
 * This file was generated by the Andrew class system preprocessor.
 * Don't make changes to this file as it is created from rawmssg.ch and will be
 * overwritten.  Make changes to rawmssg.ch instead.
 */ 
 
/* 
 * The following information was copied, as-is, from rawmssg.ch.
 */ 
 





/* 
 * End of information copied from rawmssg.ch.
 */ 
 
/* 
 * Include the superclass information
 */ 
#define dontDefineRoutinesFor_mssg
#include "mssg.ih"
#undef dontDefineRoutinesFor_mssg

 
 
/* 
 * Data structure for rawmssg 
 */ 
struct rawmssg { 
    union {
	struct basicobject_methods *rawmssg_methods;
	struct mssg mssg;
    } header;
    struct mssginfo *message;
    boolean otherHeaders;

};

 
/* 
 * End of data structure for rawmssg.
 */ 
 


#ifndef rawmssg_PROGRAMMERVERSION
#define rawmssg_PROGRAMMERVERSION 1
#endif /* rawmssg_PROGRAMMERVERSION */

#ifdef rawmssg_VERSION
#undef rawmssg_VERSION
#endif /* rawmssg_VERSION */
#define rawmssg_VERSION ((((rawmssg_PROGRAMMERVERSION << 16) ^ (53 << 8) ^ sizeof(struct rawmssg)) & 0x7ffff) + 0x80000 + (1 << 20))

#define rawmssg_StaticLoadOnlyThisClass()  \
{ extern struct classinfo *rawmssg__GetClassInfo(); \
  (void) class_EnterInfo(NULL, rawmssg_classheader.name, rawmssg__GetClassInfo, NULL, rawmssg_classheader.namekey); } 
 
#define rawmssg_StaticLoad()  \
    { \
    mssg_StaticLoad(); \
    rawmssg_StaticLoadOnlyThisClass();  \
    } 
 
#define rawmssg_StaticEntry  {rawmssg_StaticLoad()} 
 
static struct classheader rawmssg_classheader = {
    rawmssg_VERSION,
    "rawmssg",
    "rawmssg",
    (struct basicobject_methods *) &class_RoutineStruct,
};


#endif /* rawmssg_DEFINED */

#if !defined(rawmssg_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_rawmssg) && !defined(class_StaticEntriesOnly)
#define rawmssg_ROUTINESDEFINED

#define rawmssg_GetMessageNumber(self) \
 ((&(self)->header.mssg)->messageNumber)
#define rawmssg_SetMessageNumber(self,value) \
 ((&(self)->header.mssg)->messageNumber = (value))
#define rawmssg_GetMessageFile(self) \
    ((* ((FILE * (*)())((self)->header.rawmssg_methods->routines[0]))) (self))
#define rawmssg_ReleaseMessageFile(self,fp) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[1]))) (self,fp))
#define rawmssg_MayModify(self) \
    ((* ((boolean (*)())((self)->header.rawmssg_methods->routines[2]))) (self))
#define rawmssg_SetMayModify(self,value) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[3]))) (self,value))
#define rawmssg_HasSeen(self) \
    ((* ((boolean (*)())((self)->header.rawmssg_methods->routines[4]))) (self))
#define rawmssg_SetHasSeen(self,value) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[5]))) (self,value))
#define rawmssg_GetReplyFileName(self,typeOfReply) \
    ((* ((char * (*)())((self)->header.rawmssg_methods->routines[6]))) (self,typeOfReply))
#define rawmssg_ReleaseReplyFileName(self,name) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[7]))) (self,name))
#define rawmssg_Print(self,format) \
    ((* ((boolerror (*)())((self)->header.rawmssg_methods->routines[8]))) (self,format))
#define rawmssg_GetReplyTo(self) \
    ((* ((char * (*)())((self)->header.rawmssg_methods->routines[9]))) (self))
#define rawmssg_GetWideReplyTo(self,all) \
    ((* ((char * (*)())((self)->header.rawmssg_methods->routines[10]))) (self,all))
#define rawmssg_Resend(self,name) \
    ((* ((boolerror (*)())((self)->header.rawmssg_methods->routines[11]))) (self,name))
#define rawmssg_Prefetch(self) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[12]))) (self))
#define rawmssg_GetHeader(self,headerName) \
    ((* ((struct mssginfo * (*)())((self)->header.rawmssg_methods->routines[13]))) (self,headerName))
#define rawmssg_GetStrippedHeader(self,headerName) \
    ((* ((struct mssginfo * (*)())((self)->header.rawmssg_methods->routines[14]))) (self,headerName))
#define rawmssg_GetBody(self) \
    ((* ((struct mssginfo * (*)())((self)->header.rawmssg_methods->routines[15]))) (self))
#define rawmssg_GetCaption(self) \
    ((* ((char * (*)())((self)->header.rawmssg_methods->routines[16]))) (self))
#define rawmssg_GetID(self) \
    ((* ((char * (*)())((self)->header.rawmssg_methods->routines[17]))) (self))
#define rawmssg_GetReplyID(self) \
    ((* ((char * (*)())((self)->header.rawmssg_methods->routines[18]))) (self))
#define rawmssg_GetReceiveTime(self) \
    ((* ((time_t (*)())((self)->header.rawmssg_methods->routines[19]))) (self))
#define rawmssg_GetDate(self) \
    ((* ((time_t (*)())((self)->header.rawmssg_methods->routines[20]))) (self))
#define rawmssg_IsDeleted(self) \
    ((* ((boolean (*)())((self)->header.rawmssg_methods->routines[21]))) (self))
#define rawmssg_GetFolder(self) \
    ((* ((struct msgfolder * (*)())((self)->header.rawmssg_methods->routines[22]))) (self))
#define rawmssg_GetSize(self) \
    ((* ((long (*)())((self)->header.rawmssg_methods->routines[23]))) (self))
#define rawmssg_GetFromHeader(self) \
    ((* ((struct mssginfo * (*)())((self)->header.rawmssg_methods->routines[24]))) (self))
#define rawmssg_GetLocalID(self) \
    ((* ((char * (*)())((self)->header.rawmssg_methods->routines[25]))) (self))
#define rawmssg_SetCaption(self,caption) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[26]))) (self,caption))
#define rawmssg_SetID(self,id) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[27]))) (self,id))
#define rawmssg_SetReplyID(self,id) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[28]))) (self,id))
#define rawmssg_SetReceiveTime(self,time) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[29]))) (self,time))
#define rawmssg_SetIsDeleted(self,isDeleted) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[30]))) (self,isDeleted))
#define rawmssg_SetDate(self,date) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[31]))) (self,date))
#define rawmssg_SetFolder(self,msgfolder) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[32]))) (self,msgfolder))
#define rawmssg_SetSize(self,size) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[33]))) (self,size))
#define rawmssg_CalculateCaption(self) \
    ((* ((char * (*)())((self)->header.rawmssg_methods->routines[34]))) (self))
#define rawmssg_CalculateDate(self) \
    ((* ((time_t (*)())((self)->header.rawmssg_methods->routines[35]))) (self))
#define rawmssg_CalculateID(self) \
    ((* ((char * (*)())((self)->header.rawmssg_methods->routines[36]))) (self))
#define rawmssg_CalculateReplyID(self) \
    ((* ((char * (*)())((self)->header.rawmssg_methods->routines[37]))) (self))
#define rawmssg_CalculateReceiveTime(self) \
    ((* ((time_t (*)())((self)->header.rawmssg_methods->routines[38]))) (self))
#define rawmssg_CalculateSize(self) \
    ((* ((long (*)())((self)->header.rawmssg_methods->routines[39]))) (self))
#define rawmssg_SetBody(self,body,base) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[40]))) (self,body,base))
#define rawmssg_SetBodyWithLength(self,body,len,base) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[41]))) (self,body,len,base))
#define rawmssg_SetHeader(self,headerName,value,append,base) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[42]))) (self,headerName,value,append,base))
#define rawmssg_SetHeaderWithLength(self,headerName,value,valueLen,append,base) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[43]))) (self,headerName,value,valueLen,append,base))
#define rawmssg_ClearAllHeaders(self) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[44]))) (self))
#define rawmssg_ClearHeaders(self,base) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[45]))) (self,base))
#define rawmssg_ParseRawMessage(self,text) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[46]))) (self,text))
#define rawmssg_ParseRawSetHeader(self,headerName,headerLen,text,offset,valueLen) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[47]))) (self,headerName,headerLen,text,offset,valueLen))
#define rawmssg_ParseRawSetBody(self,text,offset,bodyLen) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[48]))) (self,text,offset,bodyLen))
#define rawmssg_HaveRawMessage(self) \
    ((* ((boolean (*)())((self)->header.rawmssg_methods->routines[49]))) (self))
#define rawmssg_RetrieveRawMessage(self) \
    ((* ((struct mssginfo * (*)())((self)->header.rawmssg_methods->routines[50]))) (self))
#define rawmssg_SetRawMessage(self,info) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[51]))) (self,info))
#define rawmssg_FreeRawMessage(self) \
    ((* ((void (*)())((self)->header.rawmssg_methods->routines[52]))) (self))

#define rawmssg_NewFromObject(self) \
    ((* ((struct rawmssg * (*)())((self)->header.rawmssg_methods->info->procs->routines[0]))) (&rawmssg_classheader, (self)->header.rawmssg_methods->info->versionnumber))
#define rawmssg_New() \
    (rawmssg__New(NULL, rawmssg_VERSION))
#define rawmssg_Initialize(self) \
    (rawmssg__Initialize(NULL, self, rawmssg_VERSION))

#define rawmssg_Destroy(self) \
    ((* ((void (*)()) ((self)->header.rawmssg_methods->info->procs->routines[1]))) (&rawmssg_classheader, self))
#define rawmssg_Finalize(self) \
    (rawmssg__Finalize(NULL, self))

#define rawmssg_InitializeObject(self) \
    ((boolean) rawmssg__InitializeObject(NULL, self))
#define rawmssg_FinalizeObject(rawmssg) \
    ((void) rawmssg__FinalizeObject(NULL, rawmssg))


#endif /* !defined(rawmssg_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_rawmssg ) && !defined(class_StaticEntriesOnly)*/

#define super_GetMessageNumber(self)  \
	   mssg_GetMessageNumber((struct mssg *)self)
#define super_SetMessageNumber(self,value)  \
	   mssg_SetMessageNumber((struct mssg *)self,value)
#define super_GetMessageFile(self)  \
    ((* ((FILE * (*)()) (rawmssg_supermethods->routines[0]))) (self))
#define super_ReleaseMessageFile(self,fp)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[1]))) (self,fp))
#define super_MayModify(self)  \
    ((* ((boolean (*)()) (rawmssg_supermethods->routines[2]))) (self))
#define super_SetMayModify(self,value)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[3]))) (self,value))
#define super_HasSeen(self)  \
    ((* ((boolean (*)()) (rawmssg_supermethods->routines[4]))) (self))
#define super_SetHasSeen(self,value)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[5]))) (self,value))
#define super_GetReplyFileName(self,typeOfReply)  \
    ((* ((char * (*)()) (rawmssg_supermethods->routines[6]))) (self,typeOfReply))
#define super_ReleaseReplyFileName(self,name)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[7]))) (self,name))
#define super_Print(self,format)  \
    ((* ((boolerror (*)()) (rawmssg_supermethods->routines[8]))) (self,format))
#define super_GetReplyTo(self)  \
    ((* ((char * (*)()) (rawmssg_supermethods->routines[9]))) (self))
#define super_GetWideReplyTo(self,all)  \
    ((* ((char * (*)()) (rawmssg_supermethods->routines[10]))) (self,all))
#define super_Resend(self,name)  \
    ((* ((boolerror (*)()) (rawmssg_supermethods->routines[11]))) (self,name))
#define super_Prefetch(self)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[12]))) (self))
#define super_GetHeader(self,headerName)  \
    ((* ((struct mssginfo * (*)()) (rawmssg_supermethods->routines[13]))) (self,headerName))
#define super_GetStrippedHeader(self,headerName)  \
    ((* ((struct mssginfo * (*)()) (rawmssg_supermethods->routines[14]))) (self,headerName))
#define super_GetBody(self)  \
    ((* ((struct mssginfo * (*)()) (rawmssg_supermethods->routines[15]))) (self))
#define super_GetCaption(self)  \
    ((* ((char * (*)()) (rawmssg_supermethods->routines[16]))) (self))
#define super_GetID(self)  \
    ((* ((char * (*)()) (rawmssg_supermethods->routines[17]))) (self))
#define super_GetReplyID(self)  \
    ((* ((char * (*)()) (rawmssg_supermethods->routines[18]))) (self))
#define super_GetReceiveTime(self)  \
    ((* ((time_t (*)()) (rawmssg_supermethods->routines[19]))) (self))
#define super_GetDate(self)  \
    ((* ((time_t (*)()) (rawmssg_supermethods->routines[20]))) (self))
#define super_IsDeleted(self)  \
    ((* ((boolean (*)()) (rawmssg_supermethods->routines[21]))) (self))
#define super_GetFolder(self)  \
    ((* ((struct msgfolder * (*)()) (rawmssg_supermethods->routines[22]))) (self))
#define super_GetSize(self)  \
    ((* ((long (*)()) (rawmssg_supermethods->routines[23]))) (self))
#define super_GetFromHeader(self)  \
    ((* ((struct mssginfo * (*)()) (rawmssg_supermethods->routines[24]))) (self))
#define super_GetLocalID(self)  \
    ((* ((char * (*)()) (rawmssg_supermethods->routines[25]))) (self))
#define super_SetCaption(self,caption)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[26]))) (self,caption))
#define super_SetID(self,id)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[27]))) (self,id))
#define super_SetReplyID(self,id)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[28]))) (self,id))
#define super_SetReceiveTime(self,time)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[29]))) (self,time))
#define super_SetIsDeleted(self,isDeleted)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[30]))) (self,isDeleted))
#define super_SetDate(self,date)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[31]))) (self,date))
#define super_SetFolder(self,msgfolder)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[32]))) (self,msgfolder))
#define super_SetSize(self,size)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[33]))) (self,size))
#define super_CalculateCaption(self)  \
    ((* ((char * (*)()) (rawmssg_supermethods->routines[34]))) (self))
#define super_CalculateDate(self)  \
    ((* ((time_t (*)()) (rawmssg_supermethods->routines[35]))) (self))
#define super_CalculateID(self)  \
    ((* ((char * (*)()) (rawmssg_supermethods->routines[36]))) (self))
#define super_CalculateReplyID(self)  \
    ((* ((char * (*)()) (rawmssg_supermethods->routines[37]))) (self))
#define super_CalculateReceiveTime(self)  \
    ((* ((time_t (*)()) (rawmssg_supermethods->routines[38]))) (self))
#define super_CalculateSize(self)  \
    ((* ((long (*)()) (rawmssg_supermethods->routines[39]))) (self))
#define super_SetBody(self,body,base)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[40]))) (self,body,base))
#define super_SetBodyWithLength(self,body,len,base)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[41]))) (self,body,len,base))
#define super_SetHeader(self,headerName,value,append,base)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[42]))) (self,headerName,value,append,base))
#define super_SetHeaderWithLength(self,headerName,value,valueLen,append,base)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[43]))) (self,headerName,value,valueLen,append,base))
#define super_ClearAllHeaders(self)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[44]))) (self))
#define super_ClearHeaders(self,base)  \
    ((* ((void (*)()) (rawmssg_supermethods->routines[45]))) (self,base))

extern struct basicobject_methods *rawmssg_supermethods;

#ifndef AUXMODULE

struct basicobject_methods *rawmssg_supermethods;

struct rawmssg_methods {
    struct classinfo *info;
    long (*routines[53])();
};

struct rawmssg_classprocedures {
    struct classinfo *info;
    long (*routines[6])();
};

struct mssginfo * rawmssg__GetHeader();
long rawmssg__CalculateSize();
void rawmssg__SetHeaderWithLength();
void rawmssg__ParseRawMessage();
void rawmssg__ParseRawSetHeader();
void rawmssg__ParseRawSetBody();
boolean rawmssg__HaveRawMessage();
struct mssginfo * rawmssg__RetrieveRawMessage();
void rawmssg__SetRawMessage();
void rawmssg__FreeRawMessage();

static struct rawmssg_methods rawmssg_methodtable = {
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    (long (*)()) rawmssg__GetHeader,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    (long (*)()) rawmssg__CalculateSize,
    NULL,
    NULL,
    NULL,
    (long (*)()) rawmssg__SetHeaderWithLength,
    NULL,
    NULL,
    (long (*)()) rawmssg__ParseRawMessage,
    (long (*)()) rawmssg__ParseRawSetHeader,
    (long (*)()) rawmssg__ParseRawSetBody,
    (long (*)()) rawmssg__HaveRawMessage,
    (long (*)()) rawmssg__RetrieveRawMessage,
    (long (*)()) rawmssg__SetRawMessage,
    (long (*)()) rawmssg__FreeRawMessage
};

struct rawmssg *rawmssg__New();
void rawmssg__Destroy();
boolean rawmssg__Initialize();
void rawmssg__Finalize();
boolean rawmssg__InitializeObject();
void rawmssg__FinalizeObject();

static struct rawmssg_classprocedures rawmssg_classproceduretable = {
    NULL,
    (long (*)()) rawmssg__New,
    (long (*)()) rawmssg__Destroy,
    (long (*)()) rawmssg__Initialize,
    (long (*)()) rawmssg__Finalize,
    (long (*)()) rawmssg__InitializeObject,
    (long (*)()) rawmssg__FinalizeObject
};


static struct classinfo rawmssg_classinfo = {
    (struct basicobject_methods *) &rawmssg_methodtable,
    (struct basicobject_methods *) &rawmssg_classproceduretable,
    "rawmssg",
    "rawmssg",
    rawmssg_VERSION,
    "mssg",
    "mssg",
    NULL,
    NULL,
    &rawmssg_classheader,
    NULL,
    0
};

static int classinitialized = FALSE;

boolean rawmssg__Initialize(classID, self, versionnumber)
struct classheader *classID;
struct rawmssg *self;
unsigned long versionnumber;
{
    /* mssg_Initialize(self); */
    if(!(*((boolean (*)()) (mssg_classheader.classprocedures->routines[2])))(&mssg_classheader,self, mssg_VERSION))
	return FALSE;
    if (! classinitialized)  {
	classinitialized = TRUE;
	rawmssg_supermethods =self->header.rawmssg_methods;
	{
	    long (**p)() = &(rawmssg_methodtable.routines[0]);
	    long (**q)() = &(self->header.rawmssg_methods->routines[0]);
	    long i;

	    for (i = 0; i < 46; i++)  {
		if (*p == NULL)
		    *p = *q;
		p++;
		q++;
	    }
	}
	rawmssg_classinfo.superclass = rawmssg_supermethods->info;
	rawmssg_methodtable.info = &rawmssg_classinfo;
    }
    self->header.rawmssg_methods = (struct basicobject_methods *) &rawmssg_methodtable;
    if(!rawmssg__InitializeObject(classID, self)){
	/* mssg_Finalize(self); */
	(*((void (*)()) (mssg_classheader.classprocedures->routines[3])))(&mssg_classheader,self);
	return FALSE;
    }
    return TRUE;
}

struct rawmssg *rawmssg__New(classID, versionnumber)
struct classheader *classID;
unsigned long versionnumber;
{
    struct rawmssg *self;
    if (versionnumber != class_VERSIONNOTKNOWN && versionnumber != rawmssg_VERSION)  {
	(void) fprintf(stderr, "Incompatible version of rawmssg requested!\n");
    }
    self = (struct rawmssg *) malloc (sizeof(struct rawmssg));
    if (! self)  {
	(void) fprintf(stderr, "Could not allocate rawmssg object!\n");
	return NULL;
    }
    if(!rawmssg__Initialize(classID, self, versionnumber)){
	free((char *)self);
	return NULL;
    }
    return self;
}

void rawmssg__Finalize(classID, self)
struct classheader *classID;
struct rawmssg *self;
{
    rawmssg__FinalizeObject(classID, self);
    /* mssg_Finalize(self); */
    (*((void (*)()) (mssg_classheader.classprocedures->routines[3])))(&mssg_classheader,self);
}

void rawmssg__Destroy(classID, self)
struct classheader *classID;
struct rawmssg *self;
{
    rawmssg__Finalize(classID, self);
    free(self);
}

struct classinfo *rawmssg__GetClassInfo(classID, versionnumber)
struct classheader *classID;
unsigned long versionnumber;
{
    if (versionnumber != class_VERSIONNOTKNOWN && versionnumber != rawmssg_VERSION)  {
	(void) fprintf(stderr, "Incompatible version of rawmssg requested!\n");
    }
    rawmssg_classproceduretable.info = &rawmssg_classinfo;
    return &rawmssg_classinfo;
}

/* 
 * THIS IS NEEDED BECAUSE OF THE WAY makedo WORKS.
 * HOPEFULLY, IT CAN BE REMOVED SOON.
 */ 
 
/* this patch is not needed as the class name is the same as the file name */
 
/* 
 * END OF THIS PATCH. 
 */ 
 
#endif /* AUXMODULE */
