diff options
Diffstat (limited to 'kms++/inc/kms++/property.h')
-rw-r--r-- | kms++/inc/kms++/property.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/kms++/inc/kms++/property.h b/kms++/inc/kms++/property.h new file mode 100644 index 0000000..b9097ff --- /dev/null +++ b/kms++/inc/kms++/property.h @@ -0,0 +1,44 @@ +#pragma once + +#include "drmobject.h" +#include <map> +#include <vector> + +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<uint64_t, std::string> get_enums() const; + std::vector<uint64_t> get_values() const; + std::vector<uint32_t> get_blob_ids() const; +private: + Property(Card& card, uint32_t id); + ~Property(); + + PropertyType m_type; + + PropertyPriv* m_priv; + std::string m_name; +}; +} |