/* */ #ifndef _D_TAGGED_ITEM_H_ #define _D_TAGGED_ITEM_H_ #include "common.h" #include "SharedHandle.h" #include #include namespace aria2 { class TaggedItem { private: std::string _name; std::deque _tags; public: TaggedItem(const std::string& name):_name(name) {} virtual ~TaggedItem() {} void addTag(const std::string& tag) { _tags.push_back(tag); } std::string toTagString() const; bool hasTag(const std::string& tag) const; const std::string& getName() const { return _name; } bool operator<(const TaggedItem& item) const; bool operator==(const TaggedItem& item) const; virtual std::string toString() const; friend std::ostream& operator<<(std::ostream& o, const TaggedItem& item); friend std::ostream& operator<<(std::ostream& o, const SharedHandle& item); }; typedef SharedHandle TaggedItemHandle; typedef std::deque TaggedItems; } // namespace aria2 #endif // _D_TAGGED_ITEM_H_