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: ClntAddrMgr.h,v 1.6 2004/12/07 22:54:35 thomson Exp $ 00010 * 00011 * $Log: ClntAddrMgr.h,v $ 00012 * Revision 1.6 2004/12/07 22:54:35 thomson 00013 * Typos corrected. 00014 * 00015 * Revision 1.5 2004/12/07 00:45:41 thomson 00016 * Clnt managers creation unified and cleaned up. 00017 * 00018 * Revision 1.4 2004/10/27 22:07:55 thomson 00019 * Signed/unsigned issues fixed, Lifetime option implemented, INFORMATION-REQUEST 00020 * message is now sent properly. Valid lifetime granted by server fixed. 00021 * 00022 * Revision 1.3 2004/09/08 21:22:45 thomson 00023 * Parser improvements, signed/unsigned issues addressed. 00024 * 00025 * Revision 1.2 2004/09/07 22:02:32 thomson 00026 * pref/valid/IAID is not unsigned, RAPID-COMMIT now works ok. 00027 * 00028 */ 00029 00030 #ifndef CLNTADDRMGR_H 00031 #define CLNTADDRMGR_H 00032 00033 #include "Container.h" 00034 #include "SmartPtr.h" 00035 #include "AddrIA.h" 00036 #include "AddrMgr.h" 00037 #include "ClntCfgMgr.h" 00038 00039 class TClntCfgMgr; 00040 00041 class TClntAddrMgr : public TAddrMgr 00042 { 00043 public: 00044 TClntAddrMgr(SmartPtr<TClntCfgMgr> ClntCfgMgr, string xmlFile, bool loadDB); 00045 00046 unsigned long getT1Timeout(); 00047 unsigned long getT2Timeout(); 00048 unsigned long getPrefTimeout(); 00049 unsigned long getValidTimeout(); 00050 00051 unsigned long getTimeout(); 00052 unsigned long getTentativeTimeout(); 00053 void firstIA(); 00054 SmartPtr<TAddrIA> getIA(); 00055 SmartPtr<TAddrIA> getIA(unsigned long IAID); 00056 void addIA(SmartPtr<TAddrIA> ptr); 00057 bool delIA(long IAID); 00058 int countIA(); 00059 ~TClntAddrMgr(); 00060 00061 void doDuties(); 00062 00063 bool isIAAssigned(unsigned long IAID); 00064 private: 00065 SmartPtr<TAddrClient> Client; 00066 }; 00067 00068 #endif 00069