57 template<
class OBJECT>
59 template<
class OBJECT>
61 template<
typename OBJECT>
63 template<
typename OBJECT>
65 template<
typename OBJECT>
67 template<
typename OBJECT>
69 template<
class OBJECT>
81 template <
typename T>
126 template<
class OBJECT>
182 return fAttachedToList;
199 fAttachedToList = flag;
204 void DetachYourSelf();
207 G4shared_ptr<_ListRef<G4FastList<OBJECT> > >
fListRef;
219 template<
class OBJECT>
226 G4shared_ptr<_ListRef<G4FastList<OBJECT> > >
fListRef;
250 fPriority = Priority::eVeryLow;
255 typename std::set<G4FastList<OBJECT>*>
::iterator it = fWatching.begin();
256 typename std::set<G4FastList<OBJECT>*>
::iterator end = fWatching.end();
259 (*it)->RemoveWatcher(
this);
284 fWatching.insert(fastList);
290 typename std::set<G4FastList<OBJECT>*>
::iterator it = fWatching.find(fastList);
291 if(it == fWatching.end())
return;
303 template<
typename WATCHER_TYPE>
311 return typeid(WATCHER_TYPE).
name();
316 typedef std::set<typename G4FastList<OBJECT>::Watcher*,
332 fpNodeInManyLists = __node;
337 return fpNodeInManyLists;
342 fWatchers.insert(watcher);
347 typename WatcherSet::iterator it = fWatchers.find(watcher);
348 if(it == fWatchers.end())
return;
355 if (fNbObjects != 0)
return fBoundary.
GetPrevious()->GetObject();
364 inline bool empty()
const;
365 iterator insert(iterator , OBJECT*);
367 inline iterator begin();
368 inline const_iterator begin()
const;
370 inline iterator end();
371 inline const_iterator end()
const;
377 bool Holds(
const OBJECT*)
const;
379 inline void push_front(OBJECT* __track);
380 inline void push_back(OBJECT* __track);
383 void remove(OBJECT*);
385 iterator pop(OBJECT*);
387 iterator pop(iterator __first, iterator __last);
388 iterator erase(OBJECT*);
395 iterator erase(iterator __first, iterator __last);
410 static void Pop(OBJECT*);
419 void DeleteObject(OBJECT*);
434 template<
class OBJECT>
458 template<
typename OBJECT>
505 fpNode = fpNode->GetNext();
512 fpNode = fpNode->GetNext();
519 fpNode = fpNode->GetPrevious();
526 fpNode = fpNode->GetPrevious();
532 return (fpNode == __x.
fpNode);
537 return (fpNode != __x.
fpNode);
550 template<
typename OBJECT>
573 fpNode(right.GetNode())
580 if(fpNode == 0)
return 0;
581 return fpNode->GetObject();
587 if(fpNode == 0)
return 0;
588 return fpNode->GetObject();
594 fpNode = fpNode->GetNext();
601 fpNode = fpNode->GetNext();
608 fpNode = fpNode->GetPrevious();
615 fpNode = fpNode->GetPrevious();
621 return (fpNode == __x.
fpNode);
626 return (fpNode != __x.
fpNode);
634 #include "G4FastList.icc" 636 #endif // G4FastList_H
void SetAttachedToList(bool flag)
G4FastList_const_iterator< OBJECT > _Self
bool operator==(const HepRotation &r, const HepLorentzRotation <)
G4ErrorMatrix operator*(const G4ErrorMatrix &m1, const G4ErrorMatrix &m2)
G4FastListNode< OBJECT > * GetNext()
type_wrapper< G4ManyFastLists_iterator< OBJECT > > ManyListsIteratorW
void SetPrevious(G4FastListNode< OBJECT > *node)
bool operator==(const _Self &__x) const
G4FastList_iterator< OBJECT > iterator
G4FastList_const_iterator< OBJECT > const_iterator
G4FastListNode< G4FastList< OBJECT > > * fpNodeInManyLists
const OBJECT * operator*() const
G4FastListNode< OBJECT > node
G4FastList_const_iterator(const _Node *__x)
std::set< G4FastList< OBJECT > * > fWatching
const G4FastListNode< OBJECT > * GetNext() const
G4FastListNode< G4FastList< OBJECT > > * GetListNode()
virtual void NotifyRemoveObject(OBJECT *, G4FastList< OBJECT > *)
type_wrapper< OBJECT > ObjectW
G4shared_ptr< _ListRef< G4FastList< OBJECT > > > fListRef
G4FastList_const_iterator()
std::set< typename G4FastList< OBJECT >::Watcher *, sortWatcher< OBJECT > > WatcherSet
G4FastListNode< OBJECT > * GetPrevious()
G4FastList_const_iterator(const G4FastList_iterator< OBJECT > &right)
type_wrapper< G4ManyFastLists< OBJECT > > ManyListsW
void AddWatcher(Watcher *watcher)
virtual G4String GetWatcherName()
type_wrapper< G4ManyFastLists_iterator< typename LIST::object > > mli_traits_type
G4FastListNode< OBJECT > _Node
G4FastListNode< OBJECT > _Node
virtual G4String GetWatcherName()
virtual void NotifyAddObject(OBJECT *, G4FastList< OBJECT > *)
const _Node * GetNode() const
void NotifyDeletingList(G4FastList< OBJECT > *)
G4FastList_iterator(const G4FastList_iterator &right)
void SetListNode(G4FastListNode< G4FastList< OBJECT > > *__node)
void SetNext(G4FastListNode< OBJECT > *node)
type_wrapper< LIST > traits_type
bool operator!=(const HepRotation &r, const HepLorentzRotation <)
const OBJECT * GetObject() const
G4FastListNode< OBJECT > * fpNext
G4FastListNode< OBJECT > * fpPrevious
void RemoveWatcher(Watcher *watcher)
bool operator!=(const _Self &__x) const
bool operator==(const _Self &__x) const
void StopWatching(G4FastList< OBJECT > *fastList, bool removeWatcher=true)
Priority GetPriority() const
G4FastListNode< OBJECT > fBoundary
G4FastList_const_iterator(const G4FastList_const_iterator &right)
void Watch(G4FastList< OBJECT > *fastList)
const G4FastListNode< OBJECT > * GetPrevious() const
bool operator()(const typename G4FastList< OBJECT >::Watcher *left, const typename G4FastList< OBJECT >::Watcher *right) const
G4FastList_iterator< OBJECT > _Self
G4FastList< typename ObjectW::type > LIST
bool operator!=(const _Self &__x) const
const OBJECT * operator->() const
G4shared_ptr< _ListRef< G4FastList< OBJECT > > > fListRef
G4FastList_iterator(_Node *__x)
G4FastList< OBJECT > list
type_wrapper< G4FastList< OBJECT > > ListW