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








/* 
 * End of information copied from msgfolder.ch.
 */ 
 
/* 
 * Include the superclass information
 */ 
/* msgfolder has no super class */ 
 
 
/* 
 * Data structure for msgfolder 
 */ 
struct msgfolder { 
    struct {
	struct basicobject_methods *msgfolder_methods;
    } header;
    char *name;
    enum msgsubscription subscription;
    struct mssg *lastMessage;
    long lastMessageNumber;
    long orderPriority;
    boolean isPersonal;
    struct msgdatabase *database;
    struct keyset *idCache;
    struct keyset *replySet;

};

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


#ifndef msgfolder_PROGRAMMERVERSION
#define msgfolder_PROGRAMMERVERSION 1
#endif /* msgfolder_PROGRAMMERVERSION */

#ifdef msgfolder_VERSION
#undef msgfolder_VERSION
#endif /* msgfolder_VERSION */
#define msgfolder_VERSION ((((msgfolder_PROGRAMMERVERSION << 16) ^ (58 << 8) ^ sizeof(struct msgfolder)) & 0x7ffff) + 0x80000 + (65 << 20))

#define msgfolder_StaticLoadOnlyThisClass()  \
{ extern struct classinfo *msgfolder__GetClassInfo(); \
  (void) class_EnterInfo(NULL, msgfolder_classheader.name, msgfolder__GetClassInfo, NULL, msgfolder_classheader.namekey); } 
 
#define msgfolder_StaticLoad()  \
    { \
    msgfolder_StaticLoadOnlyThisClass();  \
    } 
 
#define msgfolder_StaticEntry  {msgfolder_StaticLoad()} 
 
static struct classheader msgfolder_classheader = {
    msgfolder_VERSION,
    "msgfolder",
    "msgfolder",
    (struct basicobject_methods *) &class_RoutineStruct,
};


#endif /* msgfolder_DEFINED */

#if !defined(msgfolder_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_msgfolder) && !defined(class_StaticEntriesOnly)
#define msgfolder_ROUTINESDEFINED

#define msgfolder_GetName(self) \
    ((* ((char * (*)())((self)->header.msgfolder_methods->routines[0]))) (self))
#define msgfolder_SetName(self,name) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[1]))) (self,name))
#define msgfolder_GetDatabase(self) \
    ((* ((struct msgdatabase * (*)())((self)->header.msgfolder_methods->routines[2]))) (self))
#define msgfolder_SetDatabase(self,database) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[3]))) (self,database))
#define msgfolder_GetDatabaseCollection(self) \
    ((* ((struct msgdatabasecollection * (*)())((self)->header.msgfolder_methods->routines[4]))) (self))
#define msgfolder_NumberOfMessages(self) \
    ((* ((long (*)())((self)->header.msgfolder_methods->routines[5]))) (self))
#define msgfolder_NumberOfSubFolders(self) \
    ((* ((long (*)())((self)->header.msgfolder_methods->routines[6]))) (self))
#define msgfolder_GetListOfSubFolders(self) \
    ((* ((struct extendedlist * (*)())((self)->header.msgfolder_methods->routines[7]))) (self))
#define msgfolder_HasNewMessages(self) \
    ((* ((boolean (*)())((self)->header.msgfolder_methods->routines[8]))) (self))
#define msgfolder_PrintNewMessages(self) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[9]))) (self))
#define msgfolder_CheckMailboxes(self) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[10]))) (self))
#define msgfolder_GetProtection(self) \
    ((* ((enum msgprotection (*)())((self)->header.msgfolder_methods->routines[11]))) (self))
#define msgfolder_SetProtection(self,protect) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[12]))) (self,protect))
#define msgfolder_GetExplanationFile(self) \
    ((* ((FILE * (*)())((self)->header.msgfolder_methods->routines[13]))) (self))
#define msgfolder_ReleaseExplanationFile(self,fp) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[14]))) (self,fp))
#define msgfolder_DeleteMessage(self,message) \
    ((* ((boolerror (*)())((self)->header.msgfolder_methods->routines[15]))) (self,message))
#define msgfolder_UndeleteMessage(self,message) \
    ((* ((boolerror (*)())((self)->header.msgfolder_methods->routines[16]))) (self,message))
#define msgfolder_AppendMessage(self,message) \
    ((* ((boolerror (*)())((self)->header.msgfolder_methods->routines[17]))) (self,message))
#define msgfolder_AddMessage(self,message) \
    ((* ((boolerror (*)())((self)->header.msgfolder_methods->routines[18]))) (self,message))
#define msgfolder_Purge(self) \
    ((* ((boolerror (*)())((self)->header.msgfolder_methods->routines[19]))) (self))
#define msgfolder_NeedsToBePurged(self) \
    ((* ((boolean (*)())((self)->header.msgfolder_methods->routines[20]))) (self))
#define msgfolder_CanPrefetch(self) \
    ((* ((boolean (*)())((self)->header.msgfolder_methods->routines[21]))) (self))
#define msgfolder_Prefetch(self) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[22]))) (self))
#define msgfolder_GetAllMessages(self) \
    ((* ((struct extendedlist * (*)())((self)->header.msgfolder_methods->routines[23]))) (self))
#define msgfolder_GetMessages(self,include,rock) \
    ((* ((struct extendedlist * (*)())((self)->header.msgfolder_methods->routines[24]))) (self,include,rock))
#define msgfolder_ForEachMessage(self,stopFunc,rock) \
    ((* ((struct mssg * (*)())((self)->header.msgfolder_methods->routines[25]))) (self,stopFunc,rock))
#define msgfolder_GetMessagesSinceMessage(self,message) \
    ((* ((struct extendedlist * (*)())((self)->header.msgfolder_methods->routines[26]))) (self,message))
#define msgfolder_AreMessagesSinceMessage(self,message) \
    ((* ((boolean (*)())((self)->header.msgfolder_methods->routines[27]))) (self,message))
#define msgfolder_AreMessagesSince(self,messageNumber) \
    ((* ((boolean (*)())((self)->header.msgfolder_methods->routines[28]))) (self,messageNumber))
#define msgfolder_GetMessagesSince(self,messageNumber) \
    ((* ((struct extendedlist * (*)())((self)->header.msgfolder_methods->routines[29]))) (self,messageNumber))
#define msgfolder_AreMessagesSinceReceiveTime(self,time) \
    ((* ((boolean (*)())((self)->header.msgfolder_methods->routines[30]))) (self,time))
#define msgfolder_GetMessagesSinceReceiveTime(self,time) \
    ((* ((struct extendedlist * (*)())((self)->header.msgfolder_methods->routines[31]))) (self,time))
#define msgfolder_GetMessageNumberSinceReceiveTime(self,time) \
    ((* ((long (*)())((self)->header.msgfolder_methods->routines[32]))) (self,time))
#define msgfolder_AreMessagesSinceTime(self,time) \
    ((* ((boolean (*)())((self)->header.msgfolder_methods->routines[33]))) (self,time))
#define msgfolder_GetMessagesSinceTime(self,time) \
    ((* ((struct extendedlist * (*)())((self)->header.msgfolder_methods->routines[34]))) (self,time))
#define msgfolder_GetMessageNumberSinceTime(self,time) \
    ((* ((long (*)())((self)->header.msgfolder_methods->routines[35]))) (self,time))
#define msgfolder_GetNthMessage(self,num) \
    ((* ((struct mssg * (*)())((self)->header.msgfolder_methods->routines[36]))) (self,num))
#define msgfolder_GetMessageByID(self,id) \
    ((* ((struct mssg * (*)())((self)->header.msgfolder_methods->routines[37]))) (self,id))
#define msgfolder_SetLastReadMessage(self,message) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[38]))) (self,message))
#define msgfolder_GetLastReadMessage(self) \
    ((* ((struct mssg * (*)())((self)->header.msgfolder_methods->routines[39]))) (self))
#define msgfolder_GetLastReadMessageNumber(self) \
    ((* ((long (*)())((self)->header.msgfolder_methods->routines[40]))) (self))
#define msgfolder_SetSubscription(self,subscription) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[41]))) (self,subscription))
#define msgfolder_GetSubscription(self) \
    ((* ((enum msgsubscription (*)())((self)->header.msgfolder_methods->routines[42]))) (self))
#define msgfolder_SetIsPersonal(self,value) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[43]))) (self,value))
#define msgfolder_IsPersonal(self) \
    ((* ((boolean (*)())((self)->header.msgfolder_methods->routines[44]))) (self))
#define msgfolder_SetOrderPriority(self,value) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[45]))) (self,value))
#define msgfolder_GetOrderPriority(self) \
    ((* ((long (*)())((self)->header.msgfolder_methods->routines[46]))) (self))
#define msgfolder_RemoveAll(self) \
    ((* ((boolean /* error */ (*)())((self)->header.msgfolder_methods->routines[47]))) (self))
#define msgfolder_Remove(self) \
    ((* ((boolean /* error */ (*)())((self)->header.msgfolder_methods->routines[48]))) (self))
#define msgfolder_RemoveAllMessages(self) \
    ((* ((boolean /* error */ (*)())((self)->header.msgfolder_methods->routines[49]))) (self))
#define msgfolder_RemoveAllSubFolders(self) \
    ((* ((boolean /* error */ (*)())((self)->header.msgfolder_methods->routines[50]))) (self))
#define msgfolder_AddMessageToCache(self,message) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[51]))) (self,message))
#define msgfolder_RemoveMessageFromCache(self,message) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[52]))) (self,message))
#define msgfolder_GetReplyList(self,messageID) \
    ((* ((struct extendedlist * (*)())((self)->header.msgfolder_methods->routines[53]))) (self,messageID))
#define msgfolder_GetAllReplies(self,messageID) \
    ((* ((struct extendedlist * (*)())((self)->header.msgfolder_methods->routines[54]))) (self,messageID))
#define msgfolder_GetRelatedMessages(self,messageID) \
    ((* ((struct extendedlist * (*)())((self)->header.msgfolder_methods->routines[55]))) (self,messageID))
#define msgfolder_AddToReplyList(self,replyMessageID,messageID) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[56]))) (self,replyMessageID,messageID))
#define msgfolder_RemoveFromReplyList(self,replyMessageID,messageID) \
    ((* ((void (*)())((self)->header.msgfolder_methods->routines[57]))) (self,replyMessageID,messageID))

#define msgfolder_NewFromObject(self) \
    ((* ((struct msgfolder * (*)())((self)->header.msgfolder_methods->info->procs->routines[0]))) (&msgfolder_classheader, (self)->header.msgfolder_methods->info->versionnumber))
#define msgfolder_New() \
    (*((struct msgfolder * (*)()) (msgfolder_classheader.classprocedures->routines[0])))(&msgfolder_classheader,msgfolder_VERSION)
#define msgfolder_Initialize(self) \
    (*((void (*)()) (msgfolder_classheader.classprocedures->routines[2])))(&msgfolder_classheader,self, msgfolder_VERSION)

#define msgfolder_Destroy(self) \
    ((* ((void (*)()) ((self)->header.msgfolder_methods->info->procs->routines[1]))) (&msgfolder_classheader, self))
#define msgfolder_Finalize(self) \
    (*((void (*)()) (msgfolder_classheader.classprocedures->routines[3])))(&msgfolder_classheader,self)

#define msgfolder_InitializeObject(self) \
    (*((boolean (*)()) (msgfolder_classheader.classprocedures->routines[4])))(&msgfolder_classheader,self)
#define msgfolder_FinalizeObject(self) \
    (*((void (*)()) (msgfolder_classheader.classprocedures->routines[5])))(&msgfolder_classheader,self)
#define msgfolder_GetListOfChangedFoldersFromList(folderList) \
    (*((struct extendedlist * (*)()) (msgfolder_classheader.classprocedures->routines[6])))(&msgfolder_classheader,folderList)


#endif /* !defined(msgfolder_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_msgfolder ) && !defined(class_StaticEntriesOnly)*/

