CYCAMORE
src/manager_inst.h
Go to the documentation of this file.
1 #ifndef CYCAMORE_SRC_MANAGER_INST_H_
2 #define CYCAMORE_SRC_MANAGER_INST_H_
3 
4 #include "cyclus.h"
5 #include "cycamore_version.h"
6 
7 namespace cycamore {
8 
13 class ManagerInst
14  : public cyclus::Institution,
15  public cyclus::toolkit::CommodityProducerManager,
16  public cyclus::toolkit::Builder,
17  public cyclus::toolkit::Position {
18  public:
20  ManagerInst(cyclus::Context* ctx);
21 
23  virtual ~ManagerInst();
24 
25  virtual std::string version() { return CYCAMORE_VERSION; }
26 
27  #pragma cyclus
28 
29  #pragma cyclus note {"doc": "An institution that owns and operates a " \
30  "manually entered list of facilities in " \
31  "the input file"}
32 
34  virtual void EnterNotify();
35 
37  virtual void BuildNotify(Agent* m);
38 
40  virtual void DecomNotify(Agent* m);
41 
44  void WriteProducerInformation(cyclus::toolkit::CommodityProducer*
45  producer);
46 
47  private:
49  void Register_(cyclus::Agent* agent);
50 
52  void Unregister_(cyclus::Agent* agent);
53 
54  #pragma cyclus var { \
55  "tooltip": "producer facility prototypes", \
56  "uilabel": "Producer Prototype List", \
57  "uitype": ["oneormore", "prototype"], \
58  "doc": "A set of facility prototypes that this institution can build. " \
59  "All prototypes in this list must be based on an archetype that " \
60  "implements the cyclus::toolkit::CommodityProducer interface", \
61  }
62  std::vector<std::string> prototypes;
63 
64  #pragma cyclus var { \
65  "default": 0.0, \
66  "uilabel": "Geographical latitude in degrees as a double", \
67  "doc": "Latitude of the agent's geographical position. The value should " \
68  "be expressed in degrees as a double." \
69  }
70  double latitude;
71 
72  #pragma cyclus var { \
73  "default": 0.0, \
74  "uilabel": "Geographical longitude in degrees as a double", \
75  "doc": "Longitude of the agent's geographical position. The value should " \
76  "be expressed in degrees as a double." \
77  }
78  double longitude;
79 
80  cyclus::toolkit::Position coordinates;
81 
83  void RecordPosition();
84 };
85 
86 } // namespace cycamore
87 
88 #endif // CYCAMORE_SRC_MANAGER_INST_H_
void WriteProducerInformation(cyclus::toolkit::CommodityProducer *producer)
write information about a commodity producer to a stream
virtual void BuildNotify(Agent *m)
register a new child
ManagerInst(cyclus::Context *ctx)
Default constructor.
void Register_(cyclus::Agent *agent)
register a child
virtual void EnterNotify()
enter the simulation and register any children present
cycamore::GrowthRegion string
virtual ~ManagerInst()
Default destructor.
cyclus::toolkit::Position coordinates
virtual std::string version()
std::vector< std::string > prototypes
virtual void DecomNotify(Agent *m)
unregister a child
void RecordPosition()
Records an agent&#39;s latitude and longitude to the output db.
void Unregister_(cyclus::Agent *agent)
unregister a child