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 licence 00008 * 00009 * $Id: AddrClient.h,v 1.3 2004/09/08 21:22:45 thomson Exp $ 00010 * 00011 * $Log: AddrClient.h,v $ 00012 * Revision 1.3 2004/09/08 21:22:45 thomson 00013 * Parser improvements, signed/unsigned issues addressed. 00014 * 00015 */ 00016 00017 class TAddrClient; 00018 #ifndef ADDRCLIENT_H 00019 #define ADDRCLIENT_H 00020 00021 #include "SmartPtr.h" 00022 #include "Container.h" 00023 #include "AddrIA.h" 00024 #include "DUID.h" 00025 00026 class TAddrClient 00027 { 00028 friend ostream & operator<<(ostream & strum,TAddrClient &x); 00029 00030 public: 00031 TAddrClient(SmartPtr<TDUID> duid); 00032 SmartPtr<TDUID> getDUID(); 00033 00034 //--- IA list --- 00035 void firstIA(); 00036 SmartPtr<TAddrIA> getIA(); 00037 SmartPtr<TAddrIA> getIA(unsigned long IAID); 00038 void addIA(SmartPtr<TAddrIA> ia); 00039 bool delIA(unsigned long IAID); 00040 int countIA(); 00041 00042 // time related 00043 unsigned long getT1Timeout(); 00044 unsigned long getT2Timeout(); 00045 unsigned long getPrefTimeout(); 00046 unsigned long getValidTimeout(); 00047 00048 private: 00049 TContainer< SmartPtr<TAddrIA> > IAsLst; 00050 SmartPtr<TDUID> DUID; 00051 }; 00052 00053 00054 00055 #endif 00056