Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

Account.hh

Go to the documentation of this file.
00001 /* Account.hh - source file for the mailfilter program
00002  * Copyright (c) 2000  Andreas Bauer <baueran@in.tum.de>
00003  *
00004  * This program is free software; you can redistribute it and/or modify
00005  * it under the terms of the GNU General Public License as published by
00006  * the Free Software Foundation; either version 2 of the License, or
00007  * (at your option) any later version.
00008  *
00009  * This program is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  * GNU General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU General Public License
00015  * along with this program; if not, write to the Free Software
00016  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
00017  * USA.
00018  */
00019 
00020 #ifndef ACCOUNT_HH
00021 #define ACCOUNT_HH
00022 
00023 #include <string>
00024 #include <vector>
00025 
00026 namespace acc {
00027 
00028   // Structure of a _single_ line of a header
00029   typedef struct {
00030     string descr;
00031     string content;
00032   } Line;
00033 
00034 
00035   // Structure of the _entire_ header of an e-mail
00036   typedef struct {
00037     int number;
00038     int size;
00039     vector<Line> lines;
00040 
00041     // We store those values seperately so it's easier to log the information
00042     string sender; 
00043     string subject;
00044     string date;
00045   } Header;
00046 
00047 
00048   class Account {
00049   protected:
00050     string server;
00051     int port;
00052     string user;
00053     string pass;
00054     vector<Header> headers;                               // All e-mail headers of a mail box
00055     
00056     virtual int login() = 0;
00057     virtual int logout() = 0;
00058     virtual int deleteMessage(int) = 0;
00059     virtual int storeMessageHeader(string, int, int);     // string contains the entire header
00060                                                           // int#1 contains the number of the message
00061                                                           // int#2 is the message size in bytes
00062     virtual string cleanString(string);                   // Removes hidden line breaks and the like
00063 
00064   public:
00065     virtual ~Account() = 0;
00066     virtual int check() = 0;
00067   };
00068   
00069 }
00070 
00071 #endif

Generated at Tue Dec 19 19:21:03 2000 for mailfilter by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000