/* Web Polygraph http://www.web-polygraph.org/ * (C) 2003-2006 The Measurement Factory * Licensed under the Apache License, Version 2.0 */ #ifndef POLYGRAPH__PGL_ROBOTSYM_H #define POLYGRAPH__PGL_ROBOTSYM_H #include "xstd/Array.h" #include "pgl/AgentSym.h" class String; class RndDistr; class SessionSym; class AclSym; class DnsResolverSym; // server side configuration class RobotSym: public AgentSym { public: static const String TheType; public: RobotSym(); RobotSym(const String &aType, PglRec *aRec); virtual bool isA(const String &type) const; bool reqInterArrival(RndDistr *&iad) const; bool recurRatio(double &ratio) const; bool embedRecurRatio(double &ratio) const; bool uniqueUrls(bool &set) const; bool openConnLimit(int &lmt) const; bool waitXactLimit(int &lmt) const; bool minimizeNewConn(double &prob) const; bool authError(double &prob) const; SessionSym *session() const; bool icpPort(int &port) const; NetAddr peerHttp() const; NetAddr peerIcp() const; AclSym *acl() const; DnsResolverSym *dnsResolver() const; bool privCache(int &capacity) const; bool proxies(Array &addrs) const; bool origins(Array &addrs) const; bool origins(Array &addrs, RndDistr *&sel) const; bool credentials(Array &creds) const; bool containerTags(Array &tags) const; bool acceptedContentCodings(Array &codings) const; bool interests(Array &istrs, Array &iprobs) const; RndDistr *interests(const StrIdentifier &interestKinds) const; RndDistr *reqMethods(const StrIdentifier &reqMethodNames) const; RndDistr *pipelineDepth() const; String foreignTrace() const; String rawUriThrower() const; RndDistr *cookiesKeepLimit() const; protected: virtual SynSym *dupe(const String &dType) const; virtual String msgTypesField() const; bool reqRate(double &rate) const; }; #endif