Use a template to clean things up a little.
authorCarl Hetherington <cth@carlh.net>
Tue, 5 May 2020 13:30:15 +0000 (15:30 +0200)
committerCarl Hetherington <cth@carlh.net>
Wed, 6 May 2020 18:15:49 +0000 (20:15 +0200)
src/lib/kdm_with_metadata.h

index e7b3c23bafa8675cf7e33c9a11fe1c56a72bac1a..8710460ede626804471e46d5848784bec39f2310 100644 (file)
@@ -104,10 +104,11 @@ void email (
                );
 
 
-class DCPKDMWithMetadata : public KDMWithMetadata
+template <class T>
+class SpecialKDMWithMetadata : public KDMWithMetadata
 {
 public:
-       DCPKDMWithMetadata (dcp::NameFormat::Map const& name_values, boost::shared_ptr<Cinema> cinema, dcp::EncryptedKDM k)
+       SpecialKDMWithMetadata (dcp::NameFormat::Map const& name_values, boost::shared_ptr<Cinema> cinema, T k)
                : KDMWithMetadata (name_values, cinema)
                , kdm (k)
        {}
@@ -120,28 +121,13 @@ public:
                return kdm.as_xml (out);
        }
 
-       dcp::EncryptedKDM kdm;
+       T kdm;
 };
 
+typedef SpecialKDMWithMetadata<dcp::EncryptedKDM> DCPKDMWithMetadata;
 #ifdef DCPOMATIC_VARIANT_SWAROOP
-class ECinemaKDMWithMetadata : public KDMWithMetadata
-{
-public:
-       ECinemaKDMWithMetadata (dcp::NameValues::Map const& name_values, boost::shared_ptr<Cinema> cinema, EncryptedECinemaKDM k)
-               : KDMWithMetadata (name_values, cinema)
-               , kdm (k)
-       {}
-
-       std::string kdm_as_xml () const {
-               return kdm.as_xml ();
-       }
-
-       void kdm_as_xml (boost::filesystem::path out) const {
-               return kdm.as_xml (out);
-       }
-
-       EncryptedECinemaKDM kdm;
-};
+typedef SpecialKDMWithMetadata<EncryptedECinemaKDM> ECinemaKDMWithMetadata;
 #endif
 
 #endif
+