 
#ifndef msgdatabasecollection_DEFINED
#define msgdatabasecollection_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 msgdbcol.ch and will be
 * overwritten.  Make changes to msgdbcol.ch instead.
 */ 
 
/* 
 * The following information was copied, as-is, from msgdbcol.ch.
 */ 
 






/* 
 * End of information copied from msgdbcol.ch.
 */ 
 
/* 
 * Include the superclass information
 */ 
/* msgdatabasecollection has no super class */ 
 
 
/* 
 * Data structure for msgdatabasecollection 
 */ 
struct msgdatabasecollection { 
    struct {
	struct basicobject_methods *msgdatabasecollection_methods;
    } header;
    struct extendedlist *databases;

};

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


#ifndef msgdatabasecollection_PROGRAMMERVERSION
#define msgdatabasecollection_PROGRAMMERVERSION 1
#endif /* msgdatabasecollection_PROGRAMMERVERSION */

#ifdef msgdatabasecollection_VERSION
#undef msgdatabasecollection_VERSION
#endif /* msgdatabasecollection_VERSION */
#define msgdatabasecollection_VERSION ((((msgdatabasecollection_PROGRAMMERVERSION << 16) ^ (14 << 8) ^ sizeof(struct msgdatabasecollection)) & 0x7ffff) + 0x80000 + (65 << 20))

#define msgdatabasecollection_StaticLoadOnlyThisClass()  \
{ extern struct classinfo *msgdatabasecollection__GetClassInfo(); \
  (void) class_EnterInfo(NULL, msgdatabasecollection_classheader.name, msgdatabasecollection__GetClassInfo, NULL, msgdatabasecollection_classheader.namekey); } 
 
#define msgdatabasecollection_StaticLoad()  \
    { \
    msgdatabasecollection_StaticLoadOnlyThisClass();  \
    } 
 
#define msgdatabasecollection_StaticEntry  {msgdatabasecollection_StaticLoad()} 
 
static struct classheader msgdatabasecollection_classheader = {
    msgdatabasecollection_VERSION,
    "msgdatabasecollection",
    "msgdbcol",
    (struct basicobject_methods *) &class_RoutineStruct,
};


#endif /* msgdatabasecollection_DEFINED */

#if !defined(msgdatabasecollection_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_msgdatabasecollection) && !defined(class_StaticEntriesOnly)
#define msgdatabasecollection_ROUTINESDEFINED

#define msgdatabasecollection_GetPrimaryFolder(self) \
    ((* ((struct msgfolder * (*)())((self)->header.msgdatabasecollection_methods->routines[0]))) (self))
#define msgdatabasecollection_GetSecondaryFolderNames(self) \
    ((* ((struct extendedlist * (*)())((self)->header.msgdatabasecollection_methods->routines[1]))) (self))
#define msgdatabasecollection_Purge(self) \
    ((* ((void (*)())((self)->header.msgdatabasecollection_methods->routines[2]))) (self))
#define msgdatabasecollection_CreateFolder(self,name) \
    ((* ((struct msgfolder * (*)())((self)->header.msgdatabasecollection_methods->routines[3]))) (self,name))
#define msgdatabasecollection_IsThereNewMail(self) \
    ((* ((boolean (*)())((self)->header.msgdatabasecollection_methods->routines[4]))) (self))
#define msgdatabasecollection_CountOfNewMail(self) \
    ((* ((long (*)())((self)->header.msgdatabasecollection_methods->routines[5]))) (self))
#define msgdatabasecollection_ProcessNewMail(self,numGood,numBad,numLocked,firstError,errorBuf,bufferSize) \
    ((* ((boolean (*)())((self)->header.msgdatabasecollection_methods->routines[6]))) (self,numGood,numBad,numLocked,firstError,errorBuf,bufferSize))
#define msgdatabasecollection_GetFolder(self,name) \
    ((* ((struct msgfolder * (*)())((self)->header.msgdatabasecollection_methods->routines[7]))) (self,name))
#define msgdatabasecollection_GetListOfAllFolders(self,pattern) \
    ((* ((struct extendedlist * (*)())((self)->header.msgdatabasecollection_methods->routines[8]))) (self,pattern))
#define msgdatabasecollection_GetListOfFolders(self,testProc,rock,pattern) \
    ((* ((struct extendedlist * (*)())((self)->header.msgdatabasecollection_methods->routines[9]))) (self,testProc,rock,pattern))
#define msgdatabasecollection_GetListOfSubscribedFolders(self,pattern) \
    ((* ((struct extendedlist * (*)())((self)->header.msgdatabasecollection_methods->routines[10]))) (self,pattern))
#define msgdatabasecollection_GetListOfPersonalFolders(self,pattern) \
    ((* ((struct extendedlist * (*)())((self)->header.msgdatabasecollection_methods->routines[11]))) (self,pattern))
#define msgdatabasecollection_GetListOfMailFolders(self,pattern) \
    ((* ((struct extendedlist * (*)())((self)->header.msgdatabasecollection_methods->routines[12]))) (self,pattern))
#define msgdatabasecollection_UpdateState(self) \
    ((* ((boolean (*)())((self)->header.msgdatabasecollection_methods->routines[13]))) (self))

#define msgdatabasecollection_NewFromObject(self) \
    ((* ((struct msgdatabasecollection * (*)())((self)->header.msgdatabasecollection_methods->info->procs->routines[0]))) (&msgdatabasecollection_classheader, (self)->header.msgdatabasecollection_methods->info->versionnumber))
#define msgdatabasecollection_New() \
    (msgdatabasecollection__New(NULL, msgdatabasecollection_VERSION))
#define msgdatabasecollection_Initialize(self) \
    (msgdatabasecollection__Initialize(NULL, self, msgdatabasecollection_VERSION))

#define msgdatabasecollection_Destroy(self) \
    ((* ((void (*)()) ((self)->header.msgdatabasecollection_methods->info->procs->routines[1]))) (&msgdatabasecollection_classheader, self))
#define msgdatabasecollection_Finalize(self) \
    (msgdatabasecollection__Finalize(NULL, self))

#define msgdatabasecollection_InitializeObject(self) \
    ((boolean) msgdatabasecollection__InitializeObject(NULL, self))
#define msgdatabasecollection_FinalizeObject(self) \
    ((void) msgdatabasecollection__FinalizeObject(NULL, self))
#define msgdatabasecollection_Create(path) \
    ((struct msgdatabasecollection *) msgdatabasecollection__Create(NULL, path))


#endif /* !defined(msgdatabasecollection_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_msgdatabasecollection ) && !defined(class_StaticEntriesOnly)*/



#ifndef AUXMODULE

struct msgdatabasecollection_methods {
    struct classinfo *info;
    long (*routines[14])();
};

struct msgdatabasecollection_classprocedures {
    struct classinfo *info;
    long (*routines[7])();
};

struct msgfolder * msgdatabasecollection__GetPrimaryFolder();
struct extendedlist * msgdatabasecollection__GetSecondaryFolderNames();
void msgdatabasecollection__Purge();
struct msgfolder * msgdatabasecollection__CreateFolder();
boolean msgdatabasecollection__IsThereNewMail();
long msgdatabasecollection__CountOfNewMail();
boolean msgdatabasecollection__ProcessNewMail();
struct msgfolder * msgdatabasecollection__GetFolder();
struct extendedlist * msgdatabasecollection__GetListOfAllFolders();
struct extendedlist * msgdatabasecollection__GetListOfFolders();
struct extendedlist * msgdatabasecollection__GetListOfSubscribedFolders();
struct extendedlist * msgdatabasecollection__GetListOfPersonalFolders();
struct extendedlist * msgdatabasecollection__GetListOfMailFolders();
boolean msgdatabasecollection__UpdateState();

static struct msgdatabasecollection_methods msgdatabasecollection_methodtable = {
    NULL,
    (long (*)()) msgdatabasecollection__GetPrimaryFolder,
    (long (*)()) msgdatabasecollection__GetSecondaryFolderNames,
    (long (*)()) msgdatabasecollection__Purge,
    (long (*)()) msgdatabasecollection__CreateFolder,
    (long (*)()) msgdatabasecollection__IsThereNewMail,
    (long (*)()) msgdatabasecollection__CountOfNewMail,
    (long (*)()) msgdatabasecollection__ProcessNewMail,
    (long (*)()) msgdatabasecollection__GetFolder,
    (long (*)()) msgdatabasecollection__GetListOfAllFolders,
    (long (*)()) msgdatabasecollection__GetListOfFolders,
    (long (*)()) msgdatabasecollection__GetListOfSubscribedFolders,
    (long (*)()) msgdatabasecollection__GetListOfPersonalFolders,
    (long (*)()) msgdatabasecollection__GetListOfMailFolders,
    (long (*)()) msgdatabasecollection__UpdateState
};

struct msgdatabasecollection *msgdatabasecollection__New();
void msgdatabasecollection__Destroy();
boolean msgdatabasecollection__Initialize();
void msgdatabasecollection__Finalize();
boolean msgdatabasecollection__InitializeObject();
void msgdatabasecollection__FinalizeObject();
struct msgdatabasecollection * msgdatabasecollection__Create();

static struct msgdatabasecollection_classprocedures msgdatabasecollection_classproceduretable = {
    NULL,
    (long (*)()) msgdatabasecollection__New,
    (long (*)()) msgdatabasecollection__Destroy,
    (long (*)()) msgdatabasecollection__Initialize,
    (long (*)()) msgdatabasecollection__Finalize,
    (long (*)()) msgdatabasecollection__InitializeObject,
    (long (*)()) msgdatabasecollection__FinalizeObject,
    (long (*)()) msgdatabasecollection__Create
};


static struct classinfo msgdatabasecollection_classinfo = {
    (struct basicobject_methods *) &msgdatabasecollection_methodtable,
    (struct basicobject_methods *) &msgdatabasecollection_classproceduretable,
    "msgdatabasecollection",
    "msgdbcol",
    msgdatabasecollection_VERSION,
    NULL,
    NULL,
    NULL,
    NULL,
    &msgdatabasecollection_classheader,
    NULL,
    0
};

static int classinitialized = FALSE;

boolean msgdatabasecollection__Initialize(classID, self, versionnumber)
struct classheader *classID;
struct msgdatabasecollection *self;
unsigned long versionnumber;
{
    if (! classinitialized)  {
	classinitialized = TRUE;
	msgdatabasecollection_methodtable.info = &msgdatabasecollection_classinfo;
    }
    self->header.msgdatabasecollection_methods = (struct basicobject_methods *) &msgdatabasecollection_methodtable;
    if(!msgdatabasecollection__InitializeObject(classID, self)){
	return FALSE;
    }
    return TRUE;
}

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

void msgdatabasecollection__Finalize(classID, self)
struct classheader *classID;
struct msgdatabasecollection *self;
{
    msgdatabasecollection__FinalizeObject(classID, self);
}

void msgdatabasecollection__Destroy(classID, self)
struct classheader *classID;
struct msgdatabasecollection *self;
{
    msgdatabasecollection__Finalize(classID, self);
    free(self);
}

struct classinfo *msgdatabasecollection__GetClassInfo(classID, versionnumber)
struct classheader *classID;
unsigned long versionnumber;
{
    if (versionnumber != class_VERSIONNOTKNOWN && versionnumber != msgdatabasecollection_VERSION)  {
	(void) fprintf(stderr, "Incompatible version of msgdatabasecollection requested!\n");
    }
    msgdatabasecollection_classproceduretable.info = &msgdatabasecollection_classinfo;
    return &msgdatabasecollection_classinfo;
}

/* 
 * THIS IS NEEDED BECAUSE OF THE WAY makedo WORKS.
 * HOPEFULLY, IT CAN BE REMOVED SOON.
 */ 
 
struct classinfo *msgdbcol__GetClassInfo(classID, versionnumber)
struct classheader *classID;
unsigned long versionnumber;
{
    return msgdatabasecollection__GetClassInfo(classID, versionnumber);
}
 
/* 
 * END OF THIS PATCH. 
 */ 
 
#endif /* AUXMODULE */
