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
00024 namespace cgatools { namespace reference {
00025 class Range;
00026 class Location;
00027 class CrrFile;
00028 }}
00029
00030 namespace cgatools { namespace util {
00031
00032 class RangeSet : public std::vector<reference::Range>
00033 {
00034 public:
00035 typedef std::vector<std::string> StringVector;
00036
00042 bool intersects (const reference::Range& inRange) const;
00043
00045 bool contains(const reference::Location& loc) const;
00046
00047
00048 void add(const std::string &rangeStr, const reference::CrrFile &ref);
00049
00050 void add(const StringVector &rangeStrSet, const reference::CrrFile &ref);
00051 };
00052
00053 } }
00054
00055 #endif // CGATOOLS_UTIL_STREAMS_HPP_