1#ifndef CYCAMORE_SRC_DEPLOY_INST_H_
2#define CYCAMORE_SRC_DEPLOY_INST_H_
13typedef std::map<int, std::vector<std::string> >
BuildSched;
23 public cyclus::Institution,
24 public cyclus::toolkit::CommodityProducerManager,
25 public cyclus::toolkit::Position {
26 #pragma cyclus note { \
28 "Builds and manages agents (facilities) according to a manually" \
29 " specified deployment schedule. Deployed agents are automatically" \
30 " decommissioned at the end of their lifetime. Deployed and" \
31 " decommissioned agents are registered and unregistered with a" \
32 " region. The user specifies a list of prototypes for" \
33 " each and corresponding build times, number to build, and (optionally)" \
34 " lifetimes. The same prototype can be specified multiple times with" \
35 " any combination of the same or different build times, build number," \
47 virtual void Build(cyclus::Agent* parent);
66 #pragma cyclus var { \
67 "doc": "Ordered list of prototypes to build.", \
68 "uitype": ("oneormore", "prototype"), \
69 "uilabel": "Prototypes to deploy", \
73 #pragma cyclus var { \
74 "doc": "Time step on which to deploy agents given in prototype list " \
76 "uilabel": "Deployment times", \
80 #pragma cyclus var { \
81 "doc": "Number of each prototype given in prototype list that should be " \
82 "deployed (same order).", \
83 "uilabel": "Number to deploy", \
88 #pragma cyclus var { \
89 "doc": "Lifetimes for each prototype in prototype list (same order)." \
90 " These lifetimes override the lifetimes in the original prototype" \
92 " If unspecified, lifetimes from the original prototype definitions"\
94 " Although a new prototype is created in the Prototypes table for" \
95 " each lifetime with the suffix '_life_[lifetime]'," \
96 " all deployed agents themselves will have the same original" \
97 " prototype name (and so will the Agents tables).", \
99 "uilabel": "Lifetimes" \
104 #pragma cyclus var { \
106 "uilabel": "Geographical latitude in degrees as a double", \
107 "doc": "Latitude of the agent's geographical position. The value should " \
108 "be expressed in degrees as a double." \
112 #pragma cyclus var { \
114 "uilabel": "Geographical longitude in degrees as a double", \
115 "doc": "Longitude of the agent's geographical position. The value should " \
116 "be expressed in degrees as a double." \
virtual void BuildNotify(Agent *m)
void WriteProducerInformation(cyclus::toolkit::CommodityProducer *producer)
write information about a commodity producer to a stream
std::vector< int > n_build
void Unregister_(cyclus::Agent *agent)
unregister a child
void RecordPosition()
Records an agent's latitude and longitude to the output db.
virtual void DecomNotify(Agent *m)
DeployInst(cyclus::Context *ctx)
virtual void Build(cyclus::Agent *parent)
void Register_(cyclus::Agent *agent)
register a child
virtual std::string version()
cyclus::toolkit::Position coordinates
std::vector< int > build_times
std::vector< std::string > prototypes
virtual void EnterNotify()
std::vector< int > lifetimes
std::map< int, std::vector< std::string > > BuildSched