Changes to libdcp.
[dcpomatic.git] / src / lib / cinema.h
index 2e7660860e66777d015c58246c33758df65e0f91..4639261c30bebc93e6237e6abe05546763026415 100644 (file)
  *  @brief Screen and Cinema classes.
  */
 
+#include <libcxml/cxml.h>
+#include <dcp/certificate.h>
 #include <boost/enable_shared_from_this.hpp>
-#include <dcp/certificates.h>
 
 class Cinema;
 
-namespace cxml {
-       class Node;
-}
-
 /** @class Screen
  *  @brief A representation of a Screen for KDM generation.
  *
@@ -39,18 +36,18 @@ namespace cxml {
 class Screen
 {
 public:
-       Screen (std::string const & n, boost::shared_ptr<dcp::Certificate> cert)
+       Screen (std::string const & n, boost::optional<dcp::Certificate> cert)
                : name (n)
                , certificate (cert)
        {}
 
-       Screen (boost::shared_ptr<const cxml::Node>);
+       Screen (cxml::ConstNodePtr);
 
        void as_xml (xmlpp::Element *) const;
-       
+
        boost::shared_ptr<Cinema> cinema;
        std::string name;
-       boost::shared_ptr<dcp::Certificate> certificate;
+       boost::optional<dcp::Certificate> certificate;
 };
 
 /** @class Cinema
@@ -67,21 +64,21 @@ public:
                , email (e)
        {}
 
-       Cinema (boost::shared_ptr<const cxml::Node>);
+       Cinema (cxml::ConstNodePtr);
 
-       void read_screens (boost::shared_ptr<const cxml::Node>);
+       void read_screens (cxml::ConstNodePtr);
 
        void as_xml (xmlpp::Element *) const;
 
        void add_screen (boost::shared_ptr<Screen>);
        void remove_screen (boost::shared_ptr<Screen>);
-       
+
        std::string name;
        std::string email;
        std::list<boost::shared_ptr<Screen> > screens () const {
                return _screens;
        }
 
-private:       
+private:
        std::list<boost::shared_ptr<Screen> > _screens;
 };