Dibbler - a portable DHCPv6  1.0.2RC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HostRange.h
Go to the documentation of this file.
1 /*
2  * Dibbler - a portable DHCPv6
3  *
4  * authors: Tomasz Mrugalski <thomson@klub.com.pl>
5  * Marek Senderski <msend@o2.pl>
6  *
7  * released under GNU GPL v2 only licence
8  *
9  */
10 
11 #ifndef STATIONRANGE_H
12 #define STATIONRANGE_H
13 
14 #include "IPv6Addr.h"
15 #include "DUID.h"
16 #include "SmartPtr.h"
17 
18 #include <iostream>
19 #include <iomanip>
20 
22 {
23  friend std::ostream& operator<<(std::ostream& out, THostRange& station);
24  public:
25  THostRange(SPtr<TDUID> duidl, SPtr<TDUID> duidr);
27  ~THostRange(void);
28  bool in(SPtr<TDUID> duid, SPtr<TIPv6Addr> addr) const;
29  bool in(SPtr<TIPv6Addr> addr) const;
30  bool in(SPtr<TDUID> duid) const;
33  unsigned long rangeCount() const;
34  SPtr<TIPv6Addr> getAddrL() const;
35  SPtr<TIPv6Addr> getAddrR() const;
36  int getPrefixLength() const;
37  void setPrefixLength(int len);
38  void truncate(int minPrefix, int maxPrefix);
39  private:
45 
47 };
48 
49 #endif
50