00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef __CORE_BILLING_H__
00032 #define __CORE_BILLING_H__
00033
00034 #include "global.h"
00035
00036 namespace tacpp {
00037
00043 class user_data {
00046 pthread_mutex_t mutex_;
00049 void lock();
00052 void unlock();
00055 db_user ddata_;
00058 int numptr_;
00059 public:
00062 user_data(db_user);
00065 ~user_data();
00068 db_user get();
00071 int getNumPtr();
00074 void incNumPtr();
00077 void decNumPtr();
00078 };
00079
00085 class Billing_data {
00088 DLoad *dl_;
00091 pthread_mutex_t Mutex_;
00094 void lock();
00097 void unlock();
00100 int number_;
00103 string descr_;
00106 string module_;
00109 bool shutdown_;
00110 public:
00113 int getNumber();
00116 void setDescr(string);
00119 string getDescr();
00122 void setModule(string);
00125 string getModule();
00128 void setShutdown(bool);
00131 bool getShutdown();
00134 Billing_data(int);
00137 ~Billing_data();
00140 string load();
00143 string buildcfstr();
00144 };
00145
00151 class CoreBilling : public Core_data {
00154 list<Billing_data*> bd;
00157 pthread_mutex_t Mutex;
00160 void lock();
00163 void unlock();
00166 list<user_data*> ud_;
00167 public:
00170 CoreBilling(const string,const string);
00173 ~CoreBilling();
00176 void add(int);
00179 void del(int);
00182 string load(int);
00185 string getmodulename(int);
00188 void modify_shut(int,bool);
00191 void modify_mod(int,const char*);
00194 void modify_des(int,const char*);
00197 string buildcfstr(int);
00200 string applycf(char * const*mask,const string cmdname,const list<string>paramList,Command * cmd=NULL)throw (CmdErr);
00203 db_user getUd(string);
00206 void addUd(db_user);
00209 void delUd(string);
00210 };
00211
00212 };
00213
00214 #endif // __CORE_BILLING_H__