/* */ #ifndef _D_P_STRING_SELECT_H_ #define _D_P_STRING_SELECT_H_ #include "PStringDatum.h" #include "PStringSegment.h" namespace aria2 { class PStringVisitor; class PStringSelect : public PStringDatum { private: std::deque _values; PStringDatumHandle _next; public: PStringSelect(const std::deque& values, const PStringDatumHandle& next): _values(values), _next(next) {} PStringSelect(const std::deque& values): _values(values) {} virtual ~PStringSelect() {} virtual void accept(PStringVisitor* visitor) { for(std::deque::iterator itr = _values.begin(); itr != _values.end(); ++itr) { PStringSegment(*itr, _next).accept(visitor); } } const std::deque& getValues() const { return _values; } PStringDatumHandle getNext() const { return _next; } }; typedef SharedHandle PStringSelectHandle; } // namespace aria2 #endif // _D_P_STRING_SELECT_H_