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