1 #ifndef __XRDSSIRRTABLE_HH__
2 #define __XRDSSIRRTABLE_HH__
42 void Add(T *item, uint64_t itemID)
44 if (baseItem != 0) theMap[itemID] = item;
45 else {baseKey = itemID;
53 void Del(uint64_t itemID,
bool finit=
false)
55 if (baseItem && baseKey == itemID)
56 {
if (finit) baseItem->Finalize();
59 if (!finit) theMap.erase(itemID);
60 else {
typename std::map<uint64_t,T*>::iterator it = theMap.find(itemID);
61 if (it != theMap.end()) it->second->Finalize();
69 if (baseItem && baseKey == itemID)
return baseItem;
70 typename std::map<uint64_t,T*>::iterator it = theMap.find(itemID);
71 return (it == theMap.end() ? 0 : it->second);
74 int Num() {
return theMap.size() + (baseItem ? 1 : 0);}
78 typename std::map<uint64_t, T*>::iterator it = theMap.begin();
79 while(it != theMap.end())
80 {it->second->Finalize();
85 {baseItem->Finalize();
98 std::map<uint64_t, T*> theMap;
void Add(T *item, uint64_t itemID)
void Del(uint64_t itemID, bool finit=false)
T * LookUp(uint64_t itemID)