00001 #ifndef CLNTIA_NA_H_HEADER_INCLUDED_C112064B
00002 #define CLNTIA_NA_H_HEADER_INCLUDED_C112064B
00003
00004 #include "ClntCfgIA.h"
00005 #include "OptIA_NA.h"
00006 #include "ClntOptIAAddress.h"
00007 #include "ClntIfaceMgr.h"
00008 #include "ClntTransMgr.h"
00009 #include "ClntCfgMgr.h"
00010 #include "ClntAddrMgr.h"
00011 #include "IPv6Addr.h"
00012 class TOptIA_NA;
00013
00014 class TClntOptIA_NA : public TOptIA_NA
00015 {
00016 public:
00017 TClntOptIA_NA(SmartPtr<TClntCfgIA> ClntCfgIA, TMsg* parent);
00018 TClntOptIA_NA(SmartPtr<TAddrIA> AddrIA, TMsg* parent);
00019 TClntOptIA_NA(SmartPtr<TAddrIA> clntAddrIA, bool zeroTimes, TMsg* parent);
00020 TClntOptIA_NA(char * buf, int bufsize, TMsg* parent);
00021 ~TClntOptIA_NA();
00022
00023 bool doDuties();
00024 int getStatusCode();
00025 void setThats(SmartPtr<TClntIfaceMgr> ifaceMgr,
00026 SmartPtr<TClntTransMgr> transMgr,
00027 SmartPtr<TClntCfgMgr> cfgMgr,
00028 SmartPtr<TClntAddrMgr> addrMgr,
00029 SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> addr, int iface);
00030
00031 SmartPtr<TClntOptIAAddress> getAddr();
00032 SmartPtr<TClntOptIAAddress> getAddr(SmartPtr<TIPv6Addr> addr);
00033 void firstAddr();
00034 int countAddr();
00035 TClntOptIA_NA(SmartPtr<TClntCfgIA> ClntCfgIA,
00036 SmartPtr<TAddrIA> ClntaddrIA,
00037 TMsg* parent);
00038 bool isValid();
00039
00040 private:
00041 void releaseAddr(long IAID, SmartPtr<TIPv6Addr> addr );
00042 int countValidAddrs(SmartPtr<TAddrIA> ptrAddrIA);
00043
00044 SmartPtr<TIPv6Addr> Addr;
00045 bool Unicast;
00046 SmartPtr<TDUID> DUID;
00047 int Iface;
00048
00049 SmartPtr<TClntIfaceMgr> IfaceMgr;
00050 SmartPtr<TClntTransMgr> TransMgr;
00051 SmartPtr<TClntCfgMgr> CfgMgr;
00052 SmartPtr<TClntAddrMgr> AddrMgr;
00053 };
00054
00055
00056 #endif
00057