#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; }; } // namespace wvcas #endif // CAS_MEDIA_ID_H