 
#ifndef msgdatabase_DEFINED
#define msgdatabase_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 msgdb.ch and will be
 * overwritten.  Make changes to msgdb.ch instead.
 */ 
 
/* 
 * The following information was copied, as-is, from msgdb.ch.
 */ 
 
#include <time.h>
#include <msgsubscr.h>






/* 
 * End of information copied from msgdb.ch.
 */ 
 
/* 
 * Include the superclass information
 */ 
/* msgdatabase has no super class */ 
 
 
/* 
 * Data structure for msgdatabase 
 */ 
struct msgdatabase { 
    struct {
	struct basicobject_methods *msgdatabase_methods;
    } header;
    struct msgdatabasecollection *dbcol;
    char *path;
    char *name;
    long priority;
    struct avlkeyset *folderCache;

};

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


#ifndef msgdatabase_PROGRAMMERVERSION
#define msgdatabase_PROGRAMMERVERSION 1
#endif /* msgdatabase_PROGRAMMERVERSION */

#ifdef msgdatabase_VERSION
#undef msgdatabase_VERSION
#endif /* msgdatabase_VERSION */
#define msgdatabase_VERSION ((((msgdatabase_PROGRAMMERVERSION << 16) ^ (30 << 8) ^ sizeof(struct msgdatabase)) & 0x7ffff) + 0x80000 + (1 << 20))

#define msgdatabase_StaticLoadOnlyThisClass()  \
{ extern struct classinfo *msgdatabase__GetClassInfo(); \
  (void) class_EnterInfo(NULL, msgdatabase_classheader.name, msgdatabase__GetClassInfo, NULL, msgdatabase_classheader.namekey); } 
 
#define msgdatabase_StaticLoad()  \
    { \
    msgdatabase_StaticLoadOnlyThisClass();  \
    } 
 
#define msgdatabase_StaticEntry  {msgdatabase_StaticLoad()} 
 
static struct classheader msgdatabase_classheader = {
    msgdatabase_VERSION,
    "msgdatabase",
    "msgdb",
    (struct basicobject_methods *) &class_RoutineStruct,
};


#endif /* msgdatabase_DEFINED */

#if !defined(msgdatabase_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_msgdatabase) && !defined(class_StaticEntriesOnly)
#define msgdatabase_ROUTINESDEFINED

#define msgdatabase_GetDatabaseCollection(self) \
 ((self)->dbcol)
#define msgdatabase_SetDatabaseCollection(self,dbc) \
 ((self)->dbcol = dbc)
#define msgdatabase_SetAttributes(self,attrValList) \
    ((* ((void (*)())((self)->header.msgdatabase_methods->routines[0]))) (self,attrValList))
#define msgdatabase_GetFolder(self,folderName) \
    ((* ((struct msgfolder * (*)())((self)->header.msgdatabase_methods->routines[1]))) (self,folderName))
#define msgdatabase_CreateFolder(self,folderName) \
    ((* ((struct msgfolder * (*)())((self)->header.msgdatabase_methods->routines[2]))) (self,folderName))
#define msgdatabase_CanDeleteFolder(self,folder,deleteMessages,deleteSubFolders) \
    ((* ((boolean (*)())((self)->header.msgdatabase_methods->routines[3]))) (self,folder,deleteMessages,deleteSubFolders))
#define msgdatabase_DeleteFolder(self,folder) \
    ((* ((boolean /* error */ (*)())((self)->header.msgdatabase_methods->routines[4]))) (self,folder))
#define msgdatabase_RenameFolder(self,folder,newName) \
    ((* ((boolerror (*)())((self)->header.msgdatabase_methods->routines[5]))) (self,folder,newName))
#define msgdatabase_IsParentFolder(self,folder,prospectiveParent) \
    ((* ((boolean (*)())((self)->header.msgdatabase_methods->routines[6]))) (self,folder,prospectiveParent))
#define msgdatabase_GetSubFolderBane(self,folder,ancestor,name) \
    ((* ((void (*)())((self)->header.msgdatabase_methods->routines[7]))) (self,folder,ancestor,name))
#define msgdatabase_GetListOfAllFolders(self,pattern) \
    ((* ((struct extendedlist * (*)())((self)->header.msgdatabase_methods->routines[8]))) (self,pattern))
#define msgdatabase_GetListOfFolders(self,testProc,rock,pattern) \
    ((* ((struct extendedlist * (*)())((self)->header.msgdatabase_methods->routines[9]))) (self,testProc,rock,pattern))
#define msgdatabase_GetListOfSubscribedFolders(self,pattern) \
    ((* ((struct extendedlist * (*)())((self)->header.msgdatabase_methods->routines[10]))) (self,pattern))
#define msgdatabase_GetListOfPersonalFolders(self,pattern) \
    ((* ((struct extendedlist * (*)())((self)->header.msgdatabase_methods->routines[11]))) (self,pattern))
#define msgdatabase_CacheFolder(self,newFolder) \
    ((* ((void (*)())((self)->header.msgdatabase_methods->routines[12]))) (self,newFolder))
#define msgdatabase_UncacheFolder(self,folder) \
    ((* ((void (*)())((self)->header.msgdatabase_methods->routines[13]))) (self,folder))
#define msgdatabase_GetCacheList(self) \
    ((* ((struct extendedlist * (*)())((self)->header.msgdatabase_methods->routines[14]))) (self))
#define msgdatabase_NumberOfCachedFolders(self) \
    ((* ((long (*)())((self)->header.msgdatabase_methods->routines[15]))) (self))
#define msgdatabase_GetPath(self) \
    ((* ((char * (*)())((self)->header.msgdatabase_methods->routines[16]))) (self))
#define msgdatabase_SetPath(self,path) \
    ((* ((void (*)())((self)->header.msgdatabase_methods->routines[17]))) (self,path))
#define msgdatabase_GetName(self) \
    ((* ((char * (*)())((self)->header.msgdatabase_methods->routines[18]))) (self))
#define msgdatabase_SetName(self,name) \
    ((* ((void (*)())((self)->header.msgdatabase_methods->routines[19]))) (self,name))
#define msgdatabase_SetPriority(self,value) \
    ((* ((void (*)())((self)->header.msgdatabase_methods->routines[20]))) (self,value))
#define msgdatabase_GetPriority(self) \
    ((* ((long (*)())((self)->header.msgdatabase_methods->routines[21]))) (self))
#define msgdatabase_NumberOfMailBoxes(self) \
    ((* ((long (*)())((self)->header.msgdatabase_methods->routines[22]))) (self))
#define msgdatabase_GetMailBox(self,num) \
    ((* ((struct msgmailbox * (*)())((self)->header.msgdatabase_methods->routines[23]))) (self,num))
#define msgdatabase_IsThereNewMail(self) \
    ((* ((boolean (*)())((self)->header.msgdatabase_methods->routines[24]))) (self))
#define msgdatabase_CountOfNewMail(self) \
    ((* ((long (*)())((self)->header.msgdatabase_methods->routines[25]))) (self))
#define msgdatabase_ProcessNewMail(self,numGood,numBad,numLocked,firstError,errorBuf,bufferSize) \
    ((* ((boolean (*)())((self)->header.msgdatabase_methods->routines[26]))) (self,numGood,numBad,numLocked,firstError,errorBuf,bufferSize))
#define msgdatabase_ReadProfile(self) \
    ((* ((boolean /* error */ (*)())((self)->header.msgdatabase_methods->routines[27]))) (self))
#define msgdatabase_SaveProfile(self) \
    ((* ((boolean /* error */ (*)())((self)->header.msgdatabase_methods->routines[28]))) (self))
#define msgdatabase_CheckpointProfile(self) \
    ((* ((boolean /* error */ (*)())((self)->header.msgdatabase_methods->routines[29]))) (self))

#define msgdatabase_NewFromObject(self) \
    ((* ((struct msgdatabase * (*)())((self)->header.msgdatabase_methods->info->procs->routines[0]))) (&msgdatabase_classheader, (self)->header.msgdatabase_methods->info->versionnumber))
#define msgdatabase_New() \
    (*((struct msgdatabase * (*)()) (msgdatabase_classheader.classprocedures->routines[0])))(&msgdatabase_classheader,msgdatabase_VERSION)
#define msgdatabase_Initialize(self) \
    (*((void (*)()) (msgdatabase_classheader.classprocedures->routines[2])))(&msgdatabase_classheader,self, msgdatabase_VERSION)

#define msgdatabase_Destroy(self) \
    ((* ((void (*)()) ((self)->header.msgdatabase_methods->info->procs->routines[1]))) (&msgdatabase_classheader, self))
#define msgdatabase_Finalize(self) \
    (*((void (*)()) (msgdatabase_classheader.classprocedures->routines[3])))(&msgdatabase_classheader,self)

#define msgdatabase_InitializeObject(self) \
    (*((boolean (*)()) (msgdatabase_classheader.classprocedures->routines[4])))(&msgdatabase_classheader,self)
#define msgdatabase_FinalizeObject(self) \
    (*((void (*)()) (msgdatabase_classheader.classprocedures->routines[5])))(&msgdatabase_classheader,self)


#endif /* !defined(msgdatabase_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_msgdatabase ) && !defined(class_StaticEntriesOnly)*/

