78 #ifndef STEAM_MOBJECT_SESSION_SCOPE_PATH_H 79 #define STEAM_MOBJECT_SESSION_SCOPE_PATH_H 106 typedef Scope const& reference;
129 std::vector<Scope> path_;
131 typedef vector<Scope> _VType;
132 typedef _VType::const_reverse_iterator _VIter;
146 explicit operator bool()
const {
return isValid(); }
150 bool isValid()
const;
154 size_t length()
const;
155 size_t ref_count()
const;
156 operator string()
const;
160 iterator begin()
const;
161 iterator end()
const;
165 Scope const& getLeaf()
const;
166 bool endsAt (
Scope const&)
const;
167 bool contains (
Scope const&)
const;
176 friend void intrusive_ptr_release (
ScopePath*);
181 Scope const& moveUp();
182 Scope const& goRoot();
183 void navigate (
Scope const&);
187 bool hasValidRoot()
const;
189 void appendScope (
Scope const&);
201 return path1.path_ == path2.path_;
207 return not (path1 == path2);
218 ++(pathFrame->refcount_);
222 intrusive_ptr_release (
ScopePath* pathFrame)
225 if (0 < pathFrame->refcount_)
226 --(pathFrame->refcount_);
232 ScopePath::ref_count()
const 239 ScopePath::length()
const 246 ScopePath::size()
const 256 ScopePath::empty()
const 258 return path_.empty();
262 ScopePath::isRoot()
const 277 ScopePath::begin()
const 279 return iterator (path_.rbegin(), path_.rend());
283 ScopePath::end()
const
Helper template(s) for creating Lumiera Forward Iterators.
static const ScopePath INVALID
constant invalid path token.
void intrusive_ptr_add_ref(ScopePath *pathFrame)
management function for boost::intrusive_ptr to be picked up by ADL
bool operator==(PtrDerefIter< I1 > const &il, PtrDerefIter< I2 > const &ir)
Supporting equality comparisons...
Steam-Layer implementation namespace root.
Namespace of Session and user visible high-level objects.
Sequence of nested scopes within the high-level model.
A Placement scope within the high-level-model.
Implementation namespace for support and library code.
_IterType iterator
Iteration is always ascending from leaf to root.
Lumiera error handling (C++ interface).
Accessing a STL element range through a Lumiera forward iterator, An instance of this iterator adapte...