home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / MMSRC029.ZIP / mmail-0.29 / mmail / pktbase.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-07-25  |  1.7 KB  |  84 lines

  1. /*
  2.  * MultiMail offline mail reader
  3.  * Packet base class
  4.  
  5.  Copyright (c) 1999 William McBrine <wmcbrine@clark.net>
  6.  
  7.  Distributed under the GNU General Public License.
  8.  For details, see the file COPYING in the parent directory. */
  9.  
  10. #ifndef PKT_H
  11. #define PKT_H
  12.  
  13. #include "mmail.h"
  14.  
  15. class pktbase : public specific_driver
  16. {
  17.  protected:
  18.     mmail *mm;
  19.     struct bodytype **body;
  20.     file_header **bulletins;
  21.  
  22.     char packetBaseName[9], *bodyString;
  23.     int maxConf, ID, currentArea, currentLetter;
  24.     unsigned hasOffConfig;
  25.  
  26.     void checkLatin(letter_header &);
  27.     void listBulletins(const char [][13], int);
  28.  public:
  29.     int getNoOfAreas();
  30.     void selectArea(int);
  31.     virtual int getNoOfLetters() = 0;
  32.     void resetLetters();
  33.     file_header *getFileList();
  34.     file_header **getBulletins();
  35.     const char *getBaseName();
  36. };
  37.  
  38. class pktreply : public reply_driver
  39. {
  40.  protected:
  41.     class upl_base
  42.     {
  43.      public:
  44.         char fname[50];
  45.         upl_base *nextRecord;
  46.         long msglen;
  47.     } *uplListHead, *uplListCurrent;
  48.  
  49.     mmail *mm;
  50.     pktbase *baseClass;
  51.     file_list *upWorkList;
  52.     const char *extent, *extent2;
  53.  
  54.     char replyPacketName[13], *replyText;
  55.     int currentLetter, noOfLetters;
  56.     bool replyExists;
  57.  
  58.     void cleanup();
  59.     void uncompress();
  60.     virtual void getReplies(FILE *) = 0;
  61.     void readRep();
  62.     void repFileName();
  63.     void addUpl(upl_base *);
  64.     virtual void addRep1(FILE *, upl_base *) = 0;
  65.     virtual void addHeader(FILE *) = 0;
  66.     virtual const char *repTemplate(const char *, bool) = 0;
  67.  public:
  68.     bool checkForReplies();
  69.     void init();
  70.     int getNoOfAreas();
  71.     void selectArea(int);
  72.     int getNoOfLetters();
  73.     void resetLetters();
  74.     const char *getBody(letter_header &);
  75.     file_header *getFileList();
  76.     file_header **getBulletins();
  77.     void killLetter(int);
  78.     area_header *refreshArea();
  79.     bool makeReply();
  80.     void deleteReplies();
  81. };
  82.  
  83. #endif
  84.