00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef CGATOOLS_UTIL_RANGE_SET_HPP_
00016 #define CGATOOLS_UTIL_RANGE_SET_HPP_ 1
00017
00020
00021 #include "cgatools/core.hpp"
00022 #include <vector>
00023 #include <string>
00024
00025 namespace cgatools { namespace reference {
00026 class Range;
00027 class Location;
00028 class CrrFile;
00029 }}
00030
00031 namespace cgatools { namespace util {
00032
00033 class RangeSet : public std::vector<reference::Range>
00034 {
00035 public:
00036 typedef std::vector<std::string> StringVector;
00037
00043 bool intersects (const reference::Range& inRange) const;
00044
00046 bool contains(const reference::Location& loc) const;
00047
00048
00049 void add(const std::string &rangeStr, const reference::CrrFile &ref);
00050
00051 void add(const StringVector &rangeStrSet, const reference::CrrFile &ref);
00052 };
00053
00054 } }
00055
00056 #endif // CGATOOLS_UTIL_STREAMS_HPP_