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:
19  ManagerInst(cyclus::Context* ctx);
20 
22  virtual ~ManagerInst();
23 
24  virtual std::string version() { return CYCAMORE_VERSION; }
25 
26  #pragma cyclus
27 
28  #pragma cyclus note {"doc": "An institution that owns and operates a " \
29  "manually entered list of facilities in " \
30  "the input file"}
31 
33  virtual void EnterNotify();
34 
36  virtual void BuildNotify(Agent* m);
37 
39  virtual void DecomNotify(Agent* m);
40 
43  void WriteProducerInformation(cyclus::toolkit::CommodityProducer*
44  producer);
45 
46  private:
48  void Register_(cyclus::Agent* agent);
49 
51  void Unregister_(cyclus::Agent* agent);
52 
53  #pragma cyclus var { \
54  "tooltip": "producer facility prototypes", \
55  "uilabel": "Producer Prototype List", \
56  "uitype": ["oneormore", "prototype"], \
57  "doc": "A set of facility prototypes that this institution can build. " \
58  "All prototypes in this list must be based on an archetype that " \
59  "implements the cyclus::toolkit::CommodityProducer interface", \
60  }
61  std::vector<std::string> prototypes;
62 };
63 
64 } // namespace cycamore
65 
66 #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.
virtual std::string version()
std::vector< std::string > prototypes
virtual void DecomNotify(Agent *m)
unregister a child
void Unregister_(cyclus::Agent *agent)
unregister a child