/* Web Polygraph       http://www.web-polygraph.org/
 * (C) 2003-2006 The Measurement Factory
 * Licensed under the Apache License, Version 2.0 */

#ifndef POLYGRAPH__CLIENT_FOREIGNWORLD_H
#define POLYGRAPH__CLIENT_FOREIGNWORLD_H

#include "xstd/String.h"
#include "xstd/Array.h"
#include "runtime/ObjWorld.h"

// an iterator over a trace of foreign URLs
// preloads the trace in RAM at configure time
class ForeignWorld: public ObjWorld {
	public:
		static int TheWss; // all local foreign worlds

	public:
		ForeignWorld();

		void configure(const String &aName);

		bool canProduce() const;

		void repeat(ObjId &oid, ObjSelector *sel);
		void produce(ObjId &oid, RndGen &rng);

	protected:
		String theName;
		Array<String*> theUrls;
};

#endif


syntax highlighted by Code2HTML, v. 0.9.1