using std::list;
using boost::shared_ptr;
-Cinema::Cinema (shared_ptr<const cxml::Node> node)
+Cinema::Cinema (cxml::ConstNodePtr node)
+ : name (node->string_child ("Name"))
+ , email (node->string_child ("Email"))
{
- name = node->string_child ("Name");
- email = node->string_child ("Email");
- list<shared_ptr<cxml::Node> > s = node->node_children ("Screen");
- for (list<shared_ptr<cxml::Node> >::iterator i = s.begin(); i != s.end(); ++i) {
+}
+
+/* This is necessary so that we can use shared_from_this in add_screen (which cannot be done from
+ a constructor)
+*/
+void
+Cinema::read_screens (cxml::ConstNodePtr node)
+{
+ list<cxml::NodePtr> s = node->node_children ("Screen");
+ for (list<cxml::NodePtr>::iterator i = s.begin(); i != s.end(); ++i) {
add_screen (shared_ptr<Screen> (new Screen (*i)));
}
}
_screens.remove (s);
}
-Screen::Screen (shared_ptr<const cxml::Node> node)
+Screen::Screen (cxml::ConstNodePtr node)
{
name = node->string_child ("Name");
- certificate = shared_ptr<libdcp::Certificate> (new libdcp::Certificate (node->string_child ("Certificate")));
+ certificate = shared_ptr<dcp::Certificate> (new dcp::Certificate (node->string_child ("Certificate")));
}
void