Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

SrvAddrMgr.h

Go to the documentation of this file.
00001 /*                                                                           
00002  * Dibbler - a portable DHCPv6                                               
00003  *                                                                           
00004  * authors: Tomasz Mrugalski <thomson@klub.com.pl>                           
00005  *          Marek Senderski <msend@o2.pl>                                    
00006  *                                                                           
00007  * released under GNU GPL v2 or later licence                                
00008  *                                                                           
00009  * $Id: SrvAddrMgr.h,v 1.6 2004/12/07 00:45:10 thomson Exp $
00010  *
00011  * $Log: SrvAddrMgr.h,v $
00012  * Revision 1.6  2004/12/07 00:45:10  thomson
00013  * Manager creation unified and cleaned up.
00014  *
00015  * Revision 1.5  2004/09/07 22:02:33  thomson
00016  * pref/valid/IAID is not unsigned, RAPID-COMMIT now works ok.
00017  *
00018  * Revision 1.4  2004/06/21 23:08:48  thomson
00019  * Minor fixes.
00020  *
00021  * Revision 1.3  2004/06/20 21:00:26  thomson
00022  * quiet flag added.
00023  *
00024  * Revision 1.2  2004/06/17 23:53:54  thomson
00025  * Server Address Assignment rewritten.
00026  *
00027  *                                                                           
00028  */
00029 
00030 class TSrvAddrMgr;
00031 #ifndef SRVADDRMGR_H
00032 #define SRVADDRMGR_H
00033 
00034 #include "AddrMgr.h"
00035 #include "SrvCfgAddrClass.h"
00036 class TSrvAddrMgr : public TAddrMgr
00037 {
00038   public:
00039     TSrvAddrMgr(string xmlfile);
00040     ~TSrvAddrMgr();
00041 
00042     long getTimeout();
00043     bool addClntAddr(SmartPtr<TDUID> clntDuid, SmartPtr<TIPv6Addr> clntAddr,
00044                      int iface, unsigned long IAID, unsigned long T1, unsigned long T2, 
00045                      SmartPtr<TIPv6Addr> addr, unsigned long pref, unsigned long valid,
00046                      bool quiet);
00047     bool delClntAddr(SmartPtr<TDUID> duid,unsigned long IAID, SmartPtr<TIPv6Addr> addr,
00048                      bool quiet);
00049     
00050     // how many addresses does this client have?
00051     unsigned long getAddrCount(SmartPtr<TDUID> duid);
00052 
00053     void doDuties();
00054     
00055     void getAddrsCount(SmartPtr<TContainer< SmartPtr<TSrvCfgAddrClass> >> classes, long *clntCnt,
00056                        long *addrCnt, SmartPtr<TDUID> duid, int iface);
00057 
00058     bool addrIsFree(SmartPtr<TIPv6Addr> addr);
00059 };
00060 
00061 #endif
00062 

Generated on Mon Dec 27 21:55:22 2004 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1