...
Code Block | ||
---|---|---|
| ||
//**
* Aggregation via traversing all SegmentEntries throughout the entire Log
*/
uint64_t
Log::aggregate()
{
uint64_t sum = 0;
//Iterate over all Segments in the Log
foreach (ActiveIdMap::value_type& idSegmentPair, activeIdMap) {
Segment* segment = idSegmentPair.second;
//Iterate over all SegmentEntries in a Segment
for (SegmentIterator i(segment); !i.isDone(); i.next()) {
SegmentEntryHandle seh = i.getHandle();
//Check that it is an Object
if (seh->type()==560620143) {
const Object* obj = seh->userData<Object>();
int *p;
p = (int*) obj->data;
sum += *p;
}
}
}
return sum;
}
|
...