/* 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<NetAddr*> &addrs) const;
bool origins(Array<NetAddr*> &addrs) const;
bool origins(Array<NetAddr*> &addrs, RndDistr *&sel) const;
bool credentials(Array<String*> &creds) const;
bool containerTags(Array<String*> &tags) const;
bool acceptedContentCodings(Array<String*> &codings) const;
bool interests(Array<StringSym*> &istrs, Array<double> &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
syntax highlighted by Code2HTML, v. 0.9.1