59template<
typename OBJECT>
61template<
typename OBJECT>
63template<
typename OBJECT>
65template<
typename OBJECT>
123template<
class OBJECT>
216template<
class OBJECT>
252 auto it = fWatching.begin();
253 auto end = fWatching.end();
256 (*it)->RemoveWatcher(
this);
281 fWatching.insert(fastList);
287 auto it = fWatching.find(fastList);
288 if(it == fWatching.end())
return;
297 std::set<G4FastList<OBJECT>*> fWatching;
300 template<
typename WATCHER_TYPE>
308 return typeid(WATCHER_TYPE).name();
313 using WatcherSet = std::set<typename G4FastList<OBJECT>::Watcher*,
431template<
class OBJECT>
455template<
typename OBJECT>
542template<
typename OBJECT>
573 if(
fpNode ==
nullptr)
return nullptr;
627#include "G4FastList.icc"
G4FastListNode(OBJECT *track=nullptr)
const G4FastListNode< OBJECT > * GetNext() const
const G4FastListNode< OBJECT > * GetPrevious() const
void SetNext(G4FastListNode< OBJECT > *node)
G4FastListNode< OBJECT > * fpNext
G4FastListNode< OBJECT > * GetPrevious()
const OBJECT * GetObject() const
G4shared_ptr< _ListRef< G4FastList< OBJECT > > > fListRef
void SetPrevious(G4FastListNode< OBJECT > *node)
G4FastListNode< OBJECT > * fpPrevious
void SetAttachedToList(bool flag)
G4FastListNode< OBJECT > * GetNext()
virtual G4String GetWatcherName()
virtual ~TWatcher()=default
Priority GetPriority() const
virtual void NotifyRemoveObject(OBJECT *, G4FastList< OBJECT > *)
virtual void NotifyAddObject(OBJECT *, G4FastList< OBJECT > *)
virtual G4String GetWatcherName()
void Watch(G4FastList< OBJECT > *fastList)
void StopWatching(G4FastList< OBJECT > *fastList, bool removeWatcher=true)
void NotifyDeletingList(G4FastList< OBJECT > *)
static void Pop(OBJECT *)
static G4FastList< OBJECT > * GetList(G4FastListNode< OBJECT > *__trackListNode)
G4FastListNode< OBJECT > * EraseListNode(OBJECT *)
G4FastListNode< OBJECT > * CreateNode(OBJECT *)
void RemoveWatcher(Watcher *watcher)
static void SetNode(OBJECT *__obj, G4FastListNode< OBJECT > *__node)
void push_front(OBJECT *__track)
G4FastListNode< OBJECT > * Flag(OBJECT *)
static G4FastList< OBJECT > * GetList(OBJECT *)
void transferTo(G4FastList< OBJECT > *)
void SetListNode(G4FastListNode< G4FastList< OBJECT > > *__node)
G4FastListNode< OBJECT > * Unflag(OBJECT *)
void Unflag(G4FastListNode< OBJECT > *__trackListNode)
void CheckFlag(G4FastListNode< OBJECT > *)
void Unhook(G4FastListNode< OBJECT > *)
const_iterator begin() const
static G4FastListNode< OBJECT > * __GetNode(OBJECT *)
G4FastListNode< G4FastList< OBJECT > > * GetListNode()
bool Holds(const OBJECT *) const
iterator insert(iterator, OBJECT *)
iterator pop(G4FastListNode< OBJECT > *)
G4FastListNode< OBJECT > fBoundary
const_iterator end() const
iterator erase(iterator __first, iterator __last)
G4shared_ptr< _ListRef< G4FastList< OBJECT > > > fListRef
static G4FastListNode< OBJECT > * GetNode(OBJECT *)
void AddWatcher(Watcher *watcher)
std::set< typename G4FastList< OBJECT >::Watcher *, sortWatcher< OBJECT > > WatcherSet
void DeleteObject(OBJECT *)
void Hook(G4FastListNode< OBJECT > *, G4FastListNode< OBJECT > *)
void push_back(OBJECT *__track)
iterator pop(iterator __first, iterator __last)
G4FastListNode< G4FastList< OBJECT > > * fpNodeInManyLists
_Self & operator=(const G4FastList_const_iterator &right)=default
G4bool operator!=(const _Self &__x) const
G4FastList_const_iterator< OBJECT > _Self
const OBJECT * operator->() const
G4FastList_const_iterator()=default
G4FastList_const_iterator(const G4FastList_iterator< OBJECT > &right)
G4FastList_const_iterator(const _Node *__x)
G4FastList_const_iterator(const G4FastList_const_iterator &right)=default
_Self & operator=(const G4FastList_iterator< OBJECT > &right)
G4bool operator==(const _Self &__x) const
const OBJECT * operator*() const
G4FastList_iterator(_Node *__x)
const OBJECT * operator*() const
const OBJECT * operator->() const
G4FastList_iterator()=default
G4FastList_iterator< OBJECT > _Self
G4bool operator!=(const _Self &__x) const
G4bool operator==(const _Self &__x) const
const _Node * GetNode() const
_Self & operator=(const G4FastList_iterator &right)=default
G4FastList_iterator(const G4FastList_iterator &right)=default
bool operator()(const typename G4FastList< OBJECT >::Watcher *left, const typename G4FastList< OBJECT >::Watcher *right) const