mux/src/mail.h

Go to the documentation of this file.
00001 // mail.h
00002 //
00003 // $Id: mail.h,v 1.6 2005/06/25 19:48:13 sdennis Exp $
00004 //
00005 
00006 #ifndef _MAIL_H
00007 #define _MAIL_H
00008 
00009 #include "copyright.h"
00010 
00011 /* Some of this isn't implemented yet, but heralds the future! */
00012 #define M_ISREAD    0x0001
00013 #define M_UNREAD    0x0FFE
00014 #define M_CLEARED   0x0002
00015 #define M_URGENT    0x0004
00016 #define M_MASS      0x0008
00017 #define M_SAFE      0x0010
00018 //#define M_RECEIPT   0x0020
00019 #define M_TAG       0x0040
00020 #define M_FORWARD   0x0080
00021         /* 0x0100 - 0x0F00 reserved for folder numbers */
00022 #define M_FMASK     0xF0FF
00023 #define M_ALL       0x1000  /* Used in mail_selectors */
00024 #define M_MSUNREAD  0x2000  /* Mail selectors */
00025         /* 0x4000 - 0x8000 available */
00026 #define M_REPLY     0x4000
00027 
00028 #define MAX_FOLDERS 15
00029 #define FOLDER_NAME_LEN MBUF_SIZE
00030 #define FolderBit(f) (256 * (f))
00031 
00032 #define Urgent(m)   (m->read & M_URGENT)
00033 #define Mass(m)     (m->read & M_MASS)
00034 #define M_Safe(m)   (m->read & M_SAFE)
00035 //#define Receipt(m)  (m->read & M_RECEIPT)
00036 #define Forward(m)  (m->read & M_FORWARD)
00037 #define Tagged(m)   (m->read & M_TAG)
00038 #define Folder(m)   ((m->read & ~M_FMASK) >> 8)
00039 #define Read(m)     (m->read & M_ISREAD)
00040 #define Cleared(m)  (m->read & M_CLEARED)
00041 #define Unread(m)   (!Read(m))
00042 #define All(ms)     (ms.flags & M_ALL)
00043 #define ExpMail(x)  (Wizard(x))
00044 //#define Reply(m)    (m->read & M_REPLY)
00045 
00046 #define MA_INC      2   /* what interval to increase the malias list */
00047 
00048 #define DASH_LINE  \
00049   "---------------------------------------------------------------------------"
00050 
00051 typedef unsigned int mail_flag;
00052 
00053 struct mail
00054 {
00055     struct mail *next;
00056     struct mail *prev;
00057     dbref        to;
00058     dbref        from;
00059     int          number;
00060     char        *time;
00061     char        *subject;
00062     char        *tolist;
00063     int          read;
00064 };
00065 
00066 struct mail_selector
00067 {
00068     int       low;
00069     int       high;
00070     mail_flag flags;
00071     dbref     player;
00072     int       days;
00073     int       day_comp;
00074 };
00075 
00076 struct muser
00077 {
00078     dbref  who;
00079     char  *fwd;
00080     char  *vacation;
00081     dbref *afilter;
00082     int    status;
00083 };
00084 
00085 typedef struct mail_body MAILBODY;
00086 struct mail_body
00087 {
00088     char *m_pMessage;
00089     int   m_nRefs;
00090 };
00091 
00092 class MailList
00093 {
00094 private:
00095     struct mail *m_miHead;
00096     struct mail *m_mi;
00097     dbref        m_player;
00098     bool         m_bRemoved;
00099 
00100 public:
00101     MailList(dbref player);
00102     struct mail *FirstItem(void);
00103     struct mail *NextItem(void);
00104     bool IsEnd(void);
00105     void RemoveItem(void);
00106     void RemoveAll(void);
00107     void AppendItem(struct mail *newp);
00108 };
00109 
00110 #endif // !_MAIL_H

Generated on Mon May 28 04:40:10 2007 for MUX by  doxygen 1.4.7