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

#ifndef POLYGRAPH__RUNTIME_AGENTCFG_H
#define POLYGRAPH__RUNTIME_AGENTCFG_H

class RndDistr;
class AgentSym;
class SslWrap;

// agent configuration items that can be shared among multiple agents
class AgentCfg {
	public:
		AgentCfg();
		~AgentCfg();

		void configure(const AgentSym *agent);

		int selectHttpVersion();
		bool selectSslWrap(const SslWrap *&wrap);
		bool selectCookieSenderStatus();

	protected:
		void configureSslWraps(const AgentSym *agent);
		void configureHttpVersions(const AgentSym *agent);

	protected:
		Array<SslWrap*> theSslWraps;   // local entries from TheSslWraps
		RndDistr *theSslWrapSel;       // selects an SSL wrapper
		RndDistr *theHttpVersionSel;   // selects HTTP version
		double theCookieSenderProb;    // probability of sending cookies
};

#endif


syntax highlighted by Code2HTML, v. 0.9.1