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_