#ifndef CAS_MEDIA_ID_H #define CAS_MEDIA_ID_H namespace wvcas { class CasMediaId { protected: CasMediaId() {} public: CasMediaId(const CasMediaId&) = delete; CasMediaId& operator=(const CasMediaId&) = delete; virtual ~CasMediaId() {} static std::unique_ptr create(); virtual CasStatus initialize(const std::string& init_data) = 0; virtual const std::string content_id() = 0; virtual const std::string provider_id() = 0; virtual bool is_entitlement_rotation_enabled() { return false; } virtual uint32_t entitlement_period_index() = 0; virtual std::string get_init_data() = 0; }; } // namespace wvcas #endif // CAS_MEDIA_ID_H