00001 #ifndef DOMAIN_H
00002 #define DOMAIN_H
00003
00004
00005 #include <iostream>
00006 #include <string>
00007 #include <list>
00008
00009 class Domain {
00010 public:
00011 Domain() {}
00013 Domain(const Domain& d,unsigned int l);
00014
00016 bool parse(const string& domain_string);
00017
00018 const list<string>& data() const { return domain_; }
00019 unsigned int size() const { return domain_.size(); }
00020
00021 bool operator==(const Domain& d) const { return domain_ == d.domain_; }
00022 bool operator<(const Domain& d) const { return domain_ < d.domain_; }
00023
00024 typedef list<string>::const_iterator iterator;
00025 iterator begin() const { return domain_.begin(); }
00026 iterator end() const { return domain_.end(); }
00027
00028 friend ostream& operator<<(ostream&,const Domain& domain);
00029 private:
00030 list<string> domain_;
00031 };
00032
00033 #endif