19 std::stringstream schema(
"");
21 std::string
master = schema.str();
25 for (
int i = 0; i <
specs.size(); ++i) {
34 std::string
search_str = std::string(
"@MODEL_SCHEMAS@");
36 if (
pos != std::string::npos) {
55 std::string alias =
qe->SubTree(
"config")->GetElementName(0);
62 agent->Agent::InfileToDb(
qe,
DbInit(agent,
true));
67 std::vector<Cond>
conds;
69 conds.push_back(
Cond(
"AgentId",
"==", agent->
id()));
70 conds.push_back(
Cond(
"SimTime",
"==",
static_cast<int>(0)));
75 agent->Agent::InitFrom(&pi);
84 std::map<std::string, std::string>
protos;
85 std::map<std::string, std::string>
parents;
86 std::set<std::string>
agents;
87 std::map<std::string, InfileTree*>
invs;
90 std::string name =
qe->GetString(
"name");
91 std::string
proto =
qe->GetString(
"prototype");
100 std::map<std::string, Agent*>
built;
101 std::set<std::string>::iterator
it =
agents.begin();
102 while (
agents.size() > 0) {
103 std::string name = *
it;
105 std::string parent =
parents[name];
110 }
else if (
built.count(parent) > 0) {
The abstract base class used by all types of agents that live and interact in a simulation.
virtual void InitFrom(QueryableBackend *b)
Intializes an agent's internal state from the database.
virtual std::string schema()
Returns an agent's xml rng schema for initializing from input files.
virtual void InfileToDb(InfileTree *qe, DbInit di)
Translates info for the agent from an input file to the database by reading parameters from the passe...
virtual const int id() const
The agent instance's unique ID within a simulation.
Wrapper class for QueryableBackends that injects a set of Cond's into every query before being execut...
Represents a condition used to filter rows returned by a query.
A simulation context provides access to necessary simulation-global functions and state.
void AddPrototype(std::string name, Agent *m)
Adds a prototype to a simulation-wide accessible list, a prototype can not be added more than once.
void DelAgent(Agent *m)
Destructs and cleans up m (and it's children recursively).
DbInit provides an interface for agents to record data to the output db that automatically injects th...
static Agent * Make(Context *ctx, AgentSpec spec)
Returns a newly constructed agent for the given module spec.
A class for extracting information from a given XML parser.
InfileTree * SubTree(std::string query, int index=0)
populates a child infile based on a query and index
virtual std::string GetString(std::string query, int index=0)
investigates the current status and returns a string representing the content of a query at a given i...
Wrapper class for QueryableBackends that injects prefix in front of the title/table for every query b...
Collects and manages output data generation for the cyclus core and agents during a simulation.
boost::uuids::uuid sim_id()
returns the unique id associated with this cyclus simulation.
void Flush()
Flushes all buffered Datum objects and flushes all registered backends.
Controls simulation timestepping and inter-timestep phases.
boost::shared_ptr< XMLParser > parser_
the parser
std::string schema_path_
filepath to the schema
std::map< std::string, AgentSpec > specs_
Agent * BuildAgent(std::string proto, Agent *parent)
Creates and builds an agent, notifying its parent.
std::string file_
the input file name
void LoadInitialAgents()
Creates all initial agent instances from the input file.
virtual std::string master_schema()
Code providing rudimentary logging capability for the Cyclus core.
taken directly from OsiSolverInterface.cpp on 2/17/14 from https://projects.coin-or....
std::string BuildFlatMasterSchema(std::string schema_path, std::string infile)
Builds and returns a master cyclus input xml schema defining a flat prototype and instance structure ...
void LoadStringstreamFromFile(std::stringstream &stream, std::string file, std::string format)
Reads the given file path as XML into the passed stream.
std::vector< AgentSpec > ParseSpecs(std::string infile, std::string format)
Returns a list of the full module+agent spec for all agents in the given input file.
T OptionalQuery(InfileTree *tree, std::string query, T default_val)
a query method for optional parameters