void PintoManagerLocationServiceCache::stopTracking(const Iterator& id) {
    Lock lck(mMutex);

    assert(id.data != NULL);
    SpaceServerData& dat = EXTRACT_ITERATOR_DATA(id);
    dat.tracking--;

    if (dat.tracking == 0 && dat.removable)
        mServers.erase( EXTRACT_ITERATOR(id) );
}
bool PintoManagerLocationServiceCache::aggregate(const Iterator& id) {
    SpaceServerData& dat = EXTRACT_ITERATOR_DATA(id);
    return dat.aggregate;
}
float32 PintoManagerLocationServiceCache::maxSize(const Iterator& id) {
    SpaceServerData& dat = EXTRACT_ITERATOR_DATA(id);
    return dat.maxSize;
}
float32 PintoManagerLocationServiceCache::centerBoundsRadius(const Iterator& id) {
    SpaceServerData& dat = EXTRACT_ITERATOR_DATA(id);
    return dat.region.radius();
}
Vector3f PintoManagerLocationServiceCache::centerOffset(const Iterator& id) {
    SpaceServerData& dat = EXTRACT_ITERATOR_DATA(id);
    return dat.region.center();
}
TimedMotionVector3f PintoManagerLocationServiceCache::location(const Iterator& id) {
    SpaceServerData& dat = EXTRACT_ITERATOR_DATA(id);
    return dat.location;
}
String PintoManagerLocationServiceCache::queryData(const Iterator& id) {
    SpaceServerData& dat = EXTRACT_ITERATOR_DATA(id);
    return dat.query_data;
}