![]() |
Exiv2
|
Base class for all Exiv2 values used to store XMP property values. More...
#include <value.hpp>
Public Types | |
enum | XmpArrayType { xaNone , xaAlt , xaBag , xaSeq } |
XMP array types. | |
enum | XmpStruct { xsNone , xsStruct } |
XMP structure indicator. | |
using | UniquePtr = std::unique_ptr< XmpValue > |
Shortcut for a XmpValue auto pointer. | |
![]() | |
using | UniquePtr = std::unique_ptr< Value > |
Shortcut for a Value auto pointer. | |
Public Member Functions | |
Accessors | |
XmpArrayType | xmpArrayType () const |
Return XMP array type, indicates if an XMP value is an array. | |
XmpStruct | xmpStruct () const |
Return XMP struct, indicates if an XMP value is a structure. | |
size_t | size () const override |
Return the size of the value in bytes. | |
size_t | copy (byte *buf, ByteOrder byteOrder=invalidByteOrder) const override |
Write value to a character data buffer. | |
![]() | |
Value (TypeId typeId) | |
Constructor, taking a type id to initialize the base class with. | |
virtual | ~Value ()=default |
Virtual destructor. | |
virtual int | setDataArea (const byte *buf, size_t len) |
Set the data area, if the value has one by copying (cloning) the buffer pointed to by buf. | |
TypeId | typeId () const |
Return the type identifier (Exif data format type). | |
UniquePtr | clone () const |
Return an auto-pointer to a copy of itself (deep copy). The caller owns this copy and the auto-pointer ensures that it will be deleted. | |
virtual size_t | count () const =0 |
Return the number of components of the value. | |
virtual std::ostream & | write (std::ostream &os) const =0 |
Write the value to an output stream. You do not usually have to use this function; it is used for the implementation of the output operator for Value, operator<<(std::ostream &os, const Value &value). | |
std::string | toString () const |
Return the value as a string. Implemented in terms of write(std::ostream& os) const of the concrete class. | |
virtual std::string | toString (size_t n) const |
Return the n-th component of the value as a string. The default implementation returns toString(). The behaviour of this method may be undefined if there is no n-th component. | |
virtual int64_t | toInt64 (size_t n=0) const =0 |
Convert the n-th component of the value to an int64_t. The behaviour of this method may be undefined if there is no n-th component. | |
virtual uint32_t | toUint32 (size_t n=0) const =0 |
Convert the n-th component of the value to a float. The behaviour of this method may be undefined if there is no n-th component. | |
virtual float | toFloat (size_t n=0) const =0 |
Convert the n-th component of the value to a float. The behaviour of this method may be undefined if there is no n-th component. | |
virtual Rational | toRational (size_t n=0) const =0 |
Convert the n-th component of the value to a Rational. The behaviour of this method may be undefined if there is no n-th component. | |
virtual size_t | sizeDataArea () const |
Return the size of the data area, 0 if there is none. | |
virtual DataBuf | dataArea () const |
Return a copy of the data area if the value has one. The caller owns this copy and DataBuf ensures that it will be deleted. | |
bool | ok () const |
Check the ok status indicator. After a to<Type> conversion, this indicator shows whether the conversion was successful. | |
Manipulators | |
void | setXmpArrayType (XmpArrayType xmpArrayType) |
Set the XMP array type to indicate that an XMP value is an array. | |
void | setXmpStruct (XmpStruct xmpStruct=xsStruct) |
Set the XMP struct type to indicate that an XMP value is a structure. | |
int | read (const byte *buf, size_t len, ByteOrder byteOrder=invalidByteOrder) override |
int | read (const std::string &buf) override=0 |
Set the value from a string buffer. The format of the string corresponds to that of the write() method, i.e., a string obtained through the write() method can be read by this function. | |
static XmpArrayType | xmpArrayType (TypeId typeId) |
Return XMP array type for an array Value TypeId, xaNone if typeId is not an XMP array value type. | |
Additional Inherited Members | |
![]() | |
static UniquePtr | create (TypeId typeId) |
A (simple) factory to create a Value type. | |
![]() | |
Value (const Value &)=default | |
Value & | operator= (const Value &)=default |
Assignment operator. Protected so that it can only be used by subclasses but not directly. | |
![]() | |
bool | ok_ {true} |
Indicates the status of the previous to<Type> conversion. | |
Base class for all Exiv2 values used to store XMP property values.
|
overridevirtual |
Write value to a character data buffer.
The user must ensure that the buffer has enough memory. Otherwise the call results in undefined behaviour.
buf | Data buffer to write to. |
byteOrder | Byte order. Not used. |
Implements Exiv2::Value.
References Exiv2::Value::write().
|
overridevirtual |
Implements Exiv2::Value.
References read().
Referenced by read().
|
overridepure virtual |
Set the value from a string buffer. The format of the string corresponds to that of the write() method, i.e., a string obtained through the write() method can be read by this function.
buf | The string to read from. |
Implements Exiv2::Value.
Implemented in Exiv2::XmpTextValue, Exiv2::XmpArrayValue, Exiv2::LangAltValue, Exiv2::XmpTextValue, Exiv2::XmpArrayValue, and Exiv2::LangAltValue.
|
overridevirtual |