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

#ifndef POLYGRAPH__PROXY_POLYPXY_H
#define POLYGRAPH__PROXY_POLYPXY_H

#include "app/PolyApp.h"

class IcpBase;

class PolyPxy: public PolyApp {
	public:
		PolyPxy();

	protected:
		virtual void configure();
		virtual void reportCfg();
		virtual void step();
		
		virtual void startAgents();
		virtual void getHostAddrs(Array<NetAddr*> &) const {}
		virtual NetAddrSym *getAgentAddrMask() const { return 0; }
		virtual void getOpts(Array<OptGrp*> &opts);
		virtual Agent *makeAgent(const AgentSym &agent, const NetAddr &address);
		virtual void logState(OLog &log);

		virtual const String sideName() const;
		virtual int logCat() const;

		void addIcpAgent(IcpBase *icpAgent);

	protected:
		Array<IcpBase*> theIcpAgents;
};

#endif


syntax highlighted by Code2HTML, v. 0.9.1