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: ClntCfgIA.h,v 1.5 2004/10/25 20:45:52 thomson Exp $ 00010 * 00011 * $Log: ClntCfgIA.h,v $ 00012 * Revision 1.5 2004/10/25 20:45:52 thomson 00013 * Option support, parsers rewritten. ClntIfaceMgr now handles options. 00014 * 00015 * 00016 */ 00017 00018 #ifndef CLNTCFGIA_H 00019 #define CLNTCFGIA_H 00020 00021 00022 #include "ClntCfgAddr.h" 00023 #include "ClntParsGlobalOpt.h" 00024 #include "DHCPConst.h" 00025 #include <iostream> 00026 #include <iomanip> 00027 using namespace std; 00028 00029 00030 class TClntCfgIA 00031 { 00032 friend std::ostream& operator<<(std::ostream& out,TClntCfgIA& group); 00033 public: 00034 long getIAID(); 00035 void setIAID(long iaid); 00036 00037 unsigned long getT1(); 00038 unsigned long getT2(); 00039 00040 void setOptions(SmartPtr<TClntParsGlobalOpt> opt); 00041 00042 void firstAddr(); 00043 SmartPtr<TClntCfgAddr> getAddr(); 00044 long countAddr(); 00045 void addAddr(SmartPtr<TClntCfgAddr> addr); 00046 00047 TClntCfgIA(long IAID); 00048 TClntCfgIA(SmartPtr<TClntCfgIA> right, long iAID); 00049 00050 void setState(enum EState state); 00051 enum EState getState(); 00052 00053 private: 00054 unsigned long IAID; 00055 unsigned long T1; 00056 unsigned long T2; 00057 00058 EState State; 00059 TContainer< SmartPtr<TClntCfgAddr> > ClntCfgAddrLst; 00060 }; 00061 00062 #endif 00063