1 2 /* Web Polygraph http://www.web-polygraph.org/ 3 * Copyright 2003-2011 The Measurement Factory 4 * Licensed under the Apache License, Version 2.0 */ 5 6 #ifndef POLYGRAPH__PGL_PGLSTATICSEMX_H 7 #define POLYGRAPH__PGL_PGLSTATICSEMX_H 8 9 #include "xstd/Time.h" 10 #include "pgl/PglSemx.h" 11 12 class AgentSym; 13 class NetPipeSym; 14 class AddrMapSym; 15 class SslWrapSym; 16 class ContainerSym; 17 class MembershipMapSym; 18 class BenchSym; 19 class PhaseSym; 20 class StatsSampleSym; 21 22 // interprets calls affecting static configuration 23 class PglStaticSemx: public PglSemx { 24 public: 25 static const String Interpret(const String &fname); 26 27 protected: 28 virtual void callProc(const String &cname, const ListSym &args); 29 30 void use(const ListSym &agents); 31 void schedule(const ListSym &phases); 32 void noteSubstitutes(const ListSym &groups); 33 34 public: 35 // used objects 36 static Array<AgentSym*> TheAgentsToUse; 37 static Array<NetPipeSym*> TheNetPipesToUse; 38 static Array<AddrMapSym*> TheAddrMapsToUse; 39 static Array<SslWrapSym*> TheSslWrapsToUse; 40 static Array<ContainerSym*> TheAddrSubstsToUse; 41 static Array<MembershipMapSym*> TheMembershipsToUse; 42 static BenchSym *TheBench; // bench configuration 43 44 // schedules 45 static Array<PhaseSym*> TheSchedule; 46 static Array<StatsSampleSym*> TheSmplSchedule; 47 48 static Time TheWorkSetLen; // working set length 49 static int TheWorkSetCap; // working set capacity 50 }; 51 52 #endif 53