Dibbler - a portable DHCPv6  1.0.2RC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ClntOptIA_PD.h
Go to the documentation of this file.
1 /*
2  * Dibbler - a portable DHCPv6
3  *
4  * author: Krzysztof Wnuk <keczi@poczta.onet.pl>
5  * changes: Tomasz Mrugalski <thomson@klub.com.pl>
6  *
7  * released under GNU GPL v2 only licence
8  */
9 
10 #ifndef CLNTOPTIA_PD_H
11 #define CLNTOPTIA_PD_H
12 
13 #include "OptIA_PD.h"
14 #include "OptIAPrefix.h"
15 #include "ClntIfaceMgr.h"
16 #include "IPv6Addr.h"
17 
18 class TOptIA_PD;
19 
20 class TClntOptIA_PD : public TOptIA_PD
21 {
22  public:
23  TClntOptIA_PD(SPtr<TClntCfgPD> ClntCfgPD, TMsg* parent);
24  TClntOptIA_PD(SPtr<TAddrIA> clntAddrPD, TMsg* parent);
25  TClntOptIA_PD(char * buf, int bufsize, TMsg* parent);
27 
28  bool doDuties();
29  int getStatusCode();
30  void setContext(SPtr<TDUID> srvDuid, SPtr<TIPv6Addr> srvAddr, TMsg* originalMsg);
31  void setIface(int iface);
32 
34  void deletePrefix(SPtr<TOptIAPrefix> prefix);
36  void firstPrefix();
37  int countPrefix() const;
38  bool isValid() const;
39 
40  bool addPrefixes();
41  bool updatePrefixes();
42  bool delPrefixes();
43  private:
45  void setState(EState state);
46  void clearContext();
47 
49  bool Unicast;
51  int Iface;
52 
54 };
55 
56 #endif /* CLNTOPTIA_PD_H */
57