#pragma once #include "drmobject.h" #include #include namespace kms { struct PropertyPriv; enum class PropertyType { Range, Enum, Blob, Bitmask, Object, SignedRange, }; class Property : public DrmObject { friend class Card; public: const std::string& name() const; bool is_immutable() const; bool is_pending() const; PropertyType type() const { return m_type; } std::map get_enums() const; std::vector get_values() const; std::vector get_blob_ids() const; private: Property(Card& card, uint32_t id); ~Property(); PropertyType m_type; PropertyPriv* m_priv; std::string m_name; }; }