1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#ifndef USERLIST_H
#define USERLIST_H
using namespace std;
#include <string>
#include "conf.h"
#include <tr1/unordered_map>
#include "postal.h"
typedef enum { eNone = 0, eDefer, eReject, eBounce, eGrey } USER_SMTP_ACTION;
typedef struct
{
USER_SMTP_ACTION action;
int sync_time;
} BHM_DATA;
typedef std::tr1::unordered_map<string, BHM_DATA, hash<string> > NAME_MAP;
class BHMUsers
{
public:
BHMUsers(const char *userListFile);
~BHMUsers() {};
private:
BHMUsers(BHMUsers &list);
NAME_MAP m_map;
USER_SMTP_ACTION chrToAction(char c)
{
switch(c)
{
case 'd':
return eDefer;
case 'r':
return eReject;
case 'b':
return eBounce;
case 'g':
return eGrey;
}
return eNone;
}
BHMUsers(const BHMUsers&);
BHMUsers & operator=(const BHMUsers&);
};
#endif
|