11 #include "RNPlatform/Inc/MemoryTracking.h"
12 #ifndef __REGISTRYMANAGERSET_H__
13 #define __REGISTRYMANAGERSET_H__
19 namespace RNReplicaNet
40 mDirection = kUndefined;
67 assert(mNumItems &&
"RegistryManagerSet::RemoveItem(T *item) called when there were no items");
68 typename std::set<T *,C>::iterator found = mItems.find(item);
70 if (found != mItems.end())
73 if (mDirection != kUndefined)
77 if (mDirection == kForward)
84 if (mDirection == kBackward)
103 assert(mDirection != kUndefined &&
"RegistryManagerSet::RemoveItem() used when BeginIterate() or EndIterate() not used or Iterate() reached the end of the list");
104 assert(mNumItems &&
"RegistryManagerSet::RemoveItem() called when there were no items");
106 typename std::set<T *,C>::iterator tst;
108 if (mDirection == kForward)
118 if (mDirection == kBackward)
132 mDirection = kForward;
141 mDirection = kBackward;
151 assert(mDirection != kUndefined &&
"RegistryManagerSet::Iterate() used when BeginIterate() or EndIterate() not used or Iterate() reached the ned of the list");
153 if (mDirection == kForward)
155 if (st != mItems.end())
163 if (mDirection == kBackward)
165 if (st != mItems.begin())
174 mDirection = kUndefined;
179 bool IsEmpty(
void)
const
181 return mItems.empty();
184 size_t GetNumItems(
void)
const
191 std::set<T *,C> mItems;
192 typename std::set<T *,C>::iterator st;
193 Direction mDirection;
void BeginIterate(void)
Definition: RegistryManagerSet.h:130
virtual ~RegistryManagerSet()
Definition: RegistryManagerSet.h:47
void RemoveItem(void)
Definition: RegistryManagerSet.h:101
void RemoveItem(T *item)
Definition: RegistryManagerSet.h:65
T * Iterate(void)
Definition: RegistryManagerSet.h:149
void AddItem(T *item)
Definition: RegistryManagerSet.h:55
RegistryManagerSet()
Definition: RegistryManagerSet.h:38
void EndIterate(void)
Definition: RegistryManagerSet.h:139
Definition: RegistryManagerSet.h:25