87 #ifndef STEAM_MOBJECT_SESSION_SCOPE_PATH_H 88 #define STEAM_MOBJECT_SESSION_SCOPE_PATH_H 115 typedef Scope const& reference;
138 std::vector<Scope> path_;
140 typedef vector<Scope> _VType;
141 typedef _VType::const_reverse_iterator _VIter;
155 explicit operator bool()
const {
return isValid(); }
159 bool isValid()
const;
163 size_t length()
const;
164 size_t ref_count()
const;
165 operator string()
const;
169 iterator begin()
const;
170 iterator end()
const;
174 Scope const& getLeaf()
const;
175 bool endsAt (
Scope const&)
const;
176 bool contains (
Scope const&)
const;
185 friend void intrusive_ptr_release (
ScopePath*);
190 Scope const& moveUp();
191 Scope const& goRoot();
192 void navigate (
Scope const&);
196 bool hasValidRoot()
const;
198 void appendScope (
Scope const&);
210 return path1.path_ == path2.path_;
216 return not (path1 == path2);
227 ++(pathFrame->refcount_);
231 intrusive_ptr_release (
ScopePath* pathFrame)
234 if (0 < pathFrame->refcount_)
235 --(pathFrame->refcount_);
241 ScopePath::ref_count()
const 248 ScopePath::length()
const 255 ScopePath::size()
const 265 ScopePath::empty()
const 267 return path_.empty();
271 ScopePath::isRoot()
const 286 ScopePath::begin()
const 288 return iterator (path_.rbegin(), path_.rend());
292 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...