File MetadataContainer.h
-
namespace OpenVDS
-
class MetadataContainer : public OpenVDS::MetadataReadAccess, public OpenVDS::MetadataWriteAccess
Public Functions
-
MetadataContainer() = default
-
inline virtual bool IsMetadataIntAvailable(const char *category, const char *name) const override
Returns true if a metadata int with the given category and name is available.
-
inline virtual bool IsMetadataIntVector2Available(const char *category, const char *name) const override
Returns true if a metadata IntVector2 with the given category and name is available.
-
inline virtual bool IsMetadataIntVector3Available(const char *category, const char *name) const override
Returns true if a metadata IntVector3 with the given category and name is available.
-
inline virtual bool IsMetadataIntVector4Available(const char *category, const char *name) const override
Returns true if a metadata IntVector4 with the given category and name is available.
-
inline virtual bool IsMetadataFloatAvailable(const char *category, const char *name) const override
Returns true if a metadata float with the given category and name is available.
-
inline virtual bool IsMetadataFloatVector2Available(const char *category, const char *name) const override
Returns true if a metadata FloatVector2 with the given category and name is available.
-
inline virtual bool IsMetadataFloatVector3Available(const char *category, const char *name) const override
Returns true if a metadata FloatVector3 with the given category and name is available.
-
inline virtual bool IsMetadataFloatVector4Available(const char *category, const char *name) const override
Returns true if a metadata FloatVector4 with the given category and name is available.
-
inline virtual bool IsMetadataDoubleAvailable(const char *category, const char *name) const override
Returns true if a metadata double with the given category and name is available.
-
inline virtual bool IsMetadataDoubleVector2Available(const char *category, const char *name) const override
Returns true if a metadata DoubleVector2 with the given category and name is available.
-
inline virtual bool IsMetadataDoubleVector3Available(const char *category, const char *name) const override
Returns true if a metadata DoubleVector3 with the given category and name is available.
-
inline virtual bool IsMetadataDoubleVector4Available(const char *category, const char *name) const override
Returns true if a metadata DoubleVector4 with the given category and name is available.
-
inline virtual bool IsMetadataStringAvailable(const char *category, const char *name) const override
Returns true if a metadata string with the given category and name is available.
-
inline virtual bool IsMetadataBLOBAvailable(const char *category, const char *name) const override
Returns true if a metadata BLOB with the given category and name is available.
-
inline virtual int GetMetadataInt(const char *category, const char *name) const override
Returns the metadata int with the given category and name.
-
inline virtual IntVector2 GetMetadataIntVector2(const char *category, const char *name) const override
Returns the metadata IntVector2 with the given category and name.
-
inline virtual IntVector3 GetMetadataIntVector3(const char *category, const char *name) const override
Returns the metadata IntVector3 with the given category and name.
-
inline virtual IntVector4 GetMetadataIntVector4(const char *category, const char *name) const override
Returns the metadata IntVector4 with the given category and name.
-
inline virtual float GetMetadataFloat(const char *category, const char *name) const override
Returns the metadata float with the given category and name.
-
inline virtual FloatVector2 GetMetadataFloatVector2(const char *category, const char *name) const override
Returns the metadata FloatVector2 with the given category and name.
-
inline virtual FloatVector3 GetMetadataFloatVector3(const char *category, const char *name) const override
Returns the metadata FloatVector3 with the given category and name.
-
inline virtual FloatVector4 GetMetadataFloatVector4(const char *category, const char *name) const override
Returns the metadata FloatVector4 with the given category and name.
-
inline virtual double GetMetadataDouble(const char *category, const char *name) const override
Returns the metadata double with the given category and name.
-
inline virtual DoubleVector2 GetMetadataDoubleVector2(const char *category, const char *name) const override
Returns the metadata DoubleVector2 with the given category and name.
-
inline virtual DoubleVector3 GetMetadataDoubleVector3(const char *category, const char *name) const override
Returns the metadata DoubleVector3 with the given category and name.
-
inline virtual DoubleVector4 GetMetadataDoubleVector4(const char *category, const char *name) const override
Returns the metadata DoubleVector4 with the given category and name.
-
inline virtual const char *GetMetadataString(const char *category, const char *name) const override
Returns the metadata string with the given category and name.
-
inline virtual void SetMetadataInt(const char *category, const char *name, int value) override
Sets a metadata int with the given category and name to the given value.
-
inline virtual void SetMetadataIntVector2(const char *category, const char *name, IntVector2 value) override
Sets a metadata IntVector2 with the given category and name to the given value.
-
inline virtual void SetMetadataIntVector3(const char *category, const char *name, IntVector3 value) override
Sets a metadata IntVector3 with the given category and name to the given value.
-
inline virtual void SetMetadataIntVector4(const char *category, const char *name, IntVector4 value) override
Sets a metadata IntVector4 with the given category and name to the given value.
-
inline virtual void SetMetadataFloat(const char *category, const char *name, float value) override
Sets a metadata float with the given category and name to the given value.
-
inline virtual void SetMetadataFloatVector2(const char *category, const char *name, FloatVector2 value) override
Sets a metadata FloatVector2 with the given category and name to the given value.
-
inline virtual void SetMetadataFloatVector3(const char *category, const char *name, FloatVector3 value) override
Sets a metadata FloatVector3 with the given category and name to the given value.
-
inline virtual void SetMetadataFloatVector4(const char *category, const char *name, FloatVector4 value) override
Sets a metadata FloatVector4 with the given category and name to the given value.
-
inline virtual void SetMetadataDouble(const char *category, const char *name, double value) override
Sets a metadata double with the given category and name to the given value.
-
inline virtual void SetMetadataDoubleVector2(const char *category, const char *name, DoubleVector2 value) override
Sets a metadata DoubleVector2 with the given category and name to the given value.
-
inline virtual void SetMetadataDoubleVector3(const char *category, const char *name, DoubleVector3 value) override
Sets a metadata DoubleVector3 with the given category and name to the given value.
-
inline virtual void SetMetadataDoubleVector4(const char *category, const char *name, DoubleVector4 value) override
Sets a metadata DoubleVector4 with the given category and name to the given value.
-
inline virtual void SetMetadataString(const char *category, const char *name, const char *value) override
Sets a metadata string with the given category and name to the given value.
-
inline virtual void SetMetadataBLOB(const char *category, const char *name, const void *data, size_t size) override
Sets a metadata BLOB with the given category and name to the given value.
-
inline virtual void CopyMetadata(const char *category, MetadataReadAccess const *metadataReadAccess) override
Copy the metadata from another MetadataContainer
- Parameters:
category – the metadata category to copy
metadataReadAccess – the MetadataReadAccess interface to copy from
-
inline virtual void ClearMetadata(const char *category, const char *name) override
Clear the metadata with the given category and name.
-
inline virtual void ClearMetadata(const char *category) override
Clear the metadata with the given category.
-
inline virtual void GetMetadataBLOB(const char *category, const char *name, const void **data, size_t *size) const override
Returns the metadata BLOB with the given category and name.
-
inline virtual MetadataKeyRange GetMetadataKeys() const override
Returns a range of metadata keys that can be iterated over using range-based ‘for’.
-
virtual void SetMetadataBLOB(const char *category, const char *name, const void *data, size_t size) = 0
Sets a metadata BLOB with the given category and name to the given value.
-
template<typename T>
inline void SetMetadataBLOB(const char *category, const char *name, std::vector<T> const &value) - Parameters:
value – Sets a metadata BLOB with the given category and name to the given value
-
virtual void SetMetadataString(const char *category, const char *name, const char *value) = 0
Sets a metadata string with the given category and name to the given value.
-
inline void SetMetadataString(const char *category, const char *name, std::string const &value)
- Parameters:
value – Sets a metadata string with the given category and name to the given value
-
virtual void GetMetadataBLOB(const char *category, const char *name, const void **data, size_t *size) const = 0
Returns the metadata BLOB with the given category and name.
-
template<typename T>
inline void GetMetadataBLOB(const char *category, const char *name, std::vector<T> &value) const
-
virtual const char *GetMetadataString(const char *category, const char *name) const = 0
Returns the metadata string with the given category and name.
Private Functions
-
inline MetadataKey GetOrCreateMetadataKey(MetadataType type, const char *category, const char *name)
-
inline void RemoveMetadataForKey(const MetadataKey &key)
Private Members
-
std::unordered_map<MetadataKey, int> m_intData
-
std::unordered_map<MetadataKey, IntVector2> m_intVector2Data
-
std::unordered_map<MetadataKey, IntVector3> m_intVector3Data
-
std::unordered_map<MetadataKey, IntVector4> m_intVector4Data
-
std::unordered_map<MetadataKey, float> m_floatData
-
std::unordered_map<MetadataKey, FloatVector2> m_floatVector2Data
-
std::unordered_map<MetadataKey, FloatVector3> m_floatVector3Data
-
std::unordered_map<MetadataKey, FloatVector4> m_floatVector4Data
-
std::unordered_map<MetadataKey, double> m_doubleData
-
std::unordered_map<MetadataKey, DoubleVector2> m_doubleVector2Data
-
std::unordered_map<MetadataKey, DoubleVector3> m_doubleVector3Data
-
std::unordered_map<MetadataKey, DoubleVector4> m_doubleVector4Data
-
std::unordered_map<MetadataKey, std::string> m_stringData
-
std::unordered_map<MetadataKey, std::vector<uint8_t>> m_blobData
-
std::vector<MetadataKey> m_keys
-
MetadataContainer() = default
-
class MetadataContainer : public OpenVDS::MetadataReadAccess, public OpenVDS::MetadataWriteAccess