21using std::make_unique;
29 std::unique_ptr<coco::BagManager> _bag;
36 std::unique_ptr<coco::ObjectManager> _object;
43 std::unique_ptr<coco::OpManager> _op;
58 std::unique_ptr<coco::InputManager> _input;
65 std::unique_ptr<coco::OutputManager> _output;
78 std::unique_ptr<coco::BlockManager> _block;
79 std::unique_ptr<coco::InstrManager> _instr;
94 std::unique_ptr<coco::BlockList> _block;
101 std::unique_ptr<coco::InputList> _input;
108 std::unique_ptr<coco::OutputList> _output;
119 std::unique_ptr<coco::EntityManager> _entity;
129 auto m = make_unique<::ModuleImpl>();
131 auto mgr = make_unique<::EntityManagerImpl>();
133 mgr->_bag = make_unique<coco::BagManager>(
m.get());
134 mgr->_object = make_unique<coco::ObjectManager>(
m.get());
135 mgr->_op = make_unique<coco::OpManager>(
m.get());
136 mgr->_instr = make_unique<coco::InstrManager>(
m.get());
137 mgr->_block = make_unique<coco::BlockManager>(
m.get());
138 mgr->_input = make_unique<coco::InputManager>(
m.get());
139 mgr->_output = make_unique<coco::OutputManager>(
m.get());
141 m->_entity = std::move(mgr);
143 m->_block = make_unique<coco::BlockList>(
m.get());
144 m->_input = make_unique<coco::InputList>();
145 m->_output = make_unique<coco::OutputList>();
Top-level element of coco IR which represents a neural network.
virtual EntityManager * entity(void)=0
virtual BlockList * block(void)=0
virtual OutputList * output(void)=0
static std::unique_ptr< Module > create(void)
virtual InputList * input(void)=0
Meta (lifetime) manager interface.
virtual InputManager * input(void)=0
virtual BlockManager * block(void)=0
virtual OutputManager * output(void)=0
virtual ObjectManager * object(void)=0
virtual OpManager * op(void)=0
virtual BagManager * bag(void)=0
virtual InstrManager * instr(void)=0