33 #include <boost/shared_ptr.hpp>
34 #include <boost/operators.hpp>
36 #include "rsb/rsbexports.h"
46 class RSB_EXPORT
Scope: boost::totally_ordered<Scope> {
55 Scope(
const std::string& scope);
63 Scope(
const char* scope);
84 const std::vector<std::string>& getComponents()
const;
92 const std::string& toString()
const;
114 bool isSubScopeOf(
const Scope& other)
const;
123 bool isSuperScopeOf(
const Scope& other)
const;
134 std::vector<Scope> superScopes(
const bool& includeSelf =
false)
const;
136 bool operator==(
const Scope& other)
const;
137 bool operator<(
const Scope& other)
const;
147 void updateStringCache();
154 typedef boost::shared_ptr<Scope>
ScopePtr;
156 RSB_EXPORT std::ostream&
operator<<(std::ostream& stream,
const Scope& scope);