/* Web Polygraph http://www.web-polygraph.org/ * (C) 2003-2006 The Measurement Factory * Licensed under the Apache License, Version 2.0 */ #include "base/polygraph.h" #include "runtime/HostMap.h" #include "client/Client.h" #include "client/CltCfg.h" #include "client/PrivWorlds.h" PrivWorldIterator::PrivWorldIterator(Client *aClient): theClient(aClient), theIdx(0) { sync(); } int PrivWorldIterator::count() const { return theClient->theCfg->theViservs.count(); } bool PrivWorldIterator::atEnd() const { return theIdx >= count(); } int PrivWorldIterator::viserv() const { return theClient->theCfg->theViservs[theIdx]; } HostCfg *PrivWorldIterator::host() const { return TheHostMap->at(viserv()); } const NetAddr &PrivWorldIterator::addr() const { return host()->theAddr; } PrivWorld &PrivWorldIterator::privWorld() const { return theClient->thePrivWorlds[viserv()]; } PrivWorldIterator &PrivWorldIterator::operator ++() { next(); return *this; } void PrivWorldIterator::next() { theIdx++; sync(); } void PrivWorldIterator::sync() { // all priv worlds should be returned; theViserv index determines what // priv worlds are in use, and that's the index we iterate here return; }