00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef __P2P_RANGE_HPP__
00027 #define __P2P_RANGE_HPP__
00028
00029 #include <string>
00030 #include <ostream>
00031 #include <p2p/ip.hpp>
00032
00033 namespace p2p {
00034 struct range {
00035 typedef std::wstring string_type;
00036
00037 string_type name;
00038 ip start, end;
00039
00040 range() {}
00041 range(const string_type &name) : name(name) {}
00042 range(const string_type &name, const ip &start, const ip &end) : name(name),start(start),end(end) {}
00043
00044 bool operator<(const range &range) const {
00045 return (this->start<range.start) | (this->start==range.start && this->end<range.end);
00046 }
00047 bool operator>(const range &range) const {
00048 return (this->start>range.start) | (this->start==range.start && this->end>range.end);
00049 }
00050 bool operator==(const range &range) const {
00051 return (this->start>=range.start && this->end<=range.end);
00052 }
00053 };
00054 }
00055
00056 #endif