* Reference count adjustments are now deferred by queuing
[citadel.git] / citadel / server.h
index 5484129ce57e905e55fad7300eb27ac708fc7cc2..fa424e4606310948c3660397a72f167d3b146845 100644 (file)
@@ -125,6 +125,7 @@ struct CitContext {
        struct citimap *IMAP;
        struct citpop3 *POP3;
        struct citsmtp *SMTP;
+       struct citmgsve *MGSVE; /**< Managesieve Session struct */
        char *SMTP_RECPS;
        char *SMTP_ROOMS;
        struct cit_ical *CIT_ICAL;              /* calendaring data */
@@ -218,6 +219,10 @@ enum {
        S_LDAP,
        S_FLOORCACHE,
        S_DEBUGMEMLEAKS,
+       S_ATBF,
+       S_JOURNAL_QUEUE,
+       S_RPLIST,
+       S_SIEVELIST,
        MAX_SEMAPHORES
 };
 
@@ -237,7 +242,8 @@ enum {
        MT_CITADEL,             /* Citadel proprietary */
        MT_RFC822,              /* RFC822 */
        MT_MIME,                /* MIME-formatted message */
-       MT_DOWNLOAD             /* Download a component */
+       MT_DOWNLOAD,            /* Download a component */
+       MT_SPEW_SECTION         /* Download a component in a single operation */
 };
 
 /*
@@ -262,6 +268,7 @@ enum {
        CDB_USETABLE,           /* network use table             */
        CDB_BIGMSGS,            /* larger message bodies         */
        CDB_FULLTEXT,           /* full text search index        */
+       CDB_EUIDINDEX,          /* locate msgs by EUID           */
        MAXCDB                  /* total number of CDB's defined */
 };
 
@@ -287,6 +294,12 @@ struct CleanupFunctionHook {
 };
 extern struct CleanupFunctionHook *CleanupHookTable;
 
+struct FixedOutputHook {
+       struct FixedOutputHook *next;
+       char content_type[64];
+       void (*h_function_pointer) (char *, int);
+};
+extern struct FixedOutputHook *FixedOutputTable;
 
 
 
@@ -444,6 +457,15 @@ struct MetaData {
        long meta_rfc822_length;        /* Cache of RFC822-translated msg length */
 };
 
+/* Calls to AdjRefCount() are queued and deferred, so the user doesn't
+ * have to wait for various disk-intensive operations to complete synchronously.
+ * This is the record format.
+ */
+struct arcq {
+       long arcq_msgnum;               /* Message number being adjusted */
+       int arcq_delta;                 /* Adjustment ( usually 1 or -1 ) */
+};
+
 
 /* 
  * Serialization routines use this struct to return a pointer and a length
@@ -458,6 +480,6 @@ struct ser_ret {
 /*               **********                    Important fields */
 /*                         ***************     Semi-important fields */
 /*                                        *    Message text (MUST be last) */
-#define FORDER "IPTAFONHRDBCEGJKLQSVWXYZUM"
+#define FORDER "IPTAFONHRDBCEJGKLQSVWXZYUM"
 
 #endif /* SERVER_H */