Value for an undefined data type.
More...
#include <value.hpp>
|
using | UniquePtr = std::unique_ptr< DataValue > |
| Shortcut for a DataValue auto pointer.
|
|
using | UniquePtr = std::unique_ptr< Value > |
| Shortcut for a Value auto pointer.
|
|
|
| DataValue (TypeId typeId=undefined) |
|
| DataValue (const byte *buf, size_t len, ByteOrder byteOrder=invalidByteOrder, TypeId typeId=undefined) |
|
|
int | read (const byte *buf, size_t len, ByteOrder byteOrder=invalidByteOrder) override |
| Read the value from a character buffer.
|
|
int | read (const std::string &buf) override |
| Set the data from a string of integer values (e.g., "0 1 2 3")
|
|
| 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.
|
|
std::string | toString () const |
| Return the value as a string. Implemented in terms of write(std::ostream& os) const of the concrete class.
|
|
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.
|
|
|
UniquePtr | clone () const |
|
size_t | copy (byte *buf, ByteOrder byteOrder=invalidByteOrder) const override |
| Write value to a character data buffer.
|
|
size_t | count () const override |
| Return the number of components of the value.
|
|
size_t | size () const override |
| Return the size of the value in bytes.
|
|
std::ostream & | write (std::ostream &os) const override |
| 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 (size_t n) const override |
| Return the n-th component of the value as a string. The behaviour of this method may be undefined if there is no n-th component.
|
|
int64_t | toInt64 (size_t n=0) const override |
| 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.
|
|
uint32_t | toUint32 (size_t n=0) const override |
| 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.
|
|
float | toFloat (size_t n=0) const override |
| 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.
|
|
Rational | toRational (size_t n=0) const override |
| 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.
|
|
|
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.
|
|
Value for an undefined data type.
◆ copy()
size_t Exiv2::DataValue::copy |
( |
byte * |
buf, |
|
|
ByteOrder |
byteOrder = invalidByteOrder |
|
) |
| const |
|
overridevirtual |
Write value to a character data buffer.
- Note
- The byte order is required by the interface but not used by this method, so just use the default.
The user must ensure that the buffer has enough memory. Otherwise the call results in undefined behaviour.
- Parameters
-
buf | Data buffer to write to. |
byteOrder | Byte order. Not needed. |
- Returns
- Number of characters written.
Implements Exiv2::Value.
◆ count()
size_t Exiv2::DataValue::count |
( |
| ) |
const |
|
overridevirtual |
Return the number of components of the value.
Implements Exiv2::Value.
◆ read() [1/2]
int Exiv2::DataValue::read |
( |
const byte * |
buf, |
|
|
size_t |
len, |
|
|
ByteOrder |
byteOrder = invalidByteOrder |
|
) |
| |
|
overridevirtual |
Read the value from a character buffer.
- Parameters
-
buf | Pointer to the data buffer to read from |
len | Number of bytes in the data buffer |
byteOrder | Applicable byte order (little or big endian). |
- Returns
- 0 if successful.
Implements Exiv2::Value.
◆ read() [2/2]
int Exiv2::DataValue::read |
( |
const std::string & |
buf | ) |
|
|
overridevirtual |
Set the data from a string of integer values (e.g., "0 1 2 3")
Implements Exiv2::Value.
◆ size()
size_t Exiv2::DataValue::size |
( |
| ) |
const |
|
overridevirtual |
Return the size of the value in bytes.
Implements Exiv2::Value.
◆ toFloat()
float Exiv2::DataValue::toFloat |
( |
size_t |
n = 0 | ) |
const |
|
overridevirtual |
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.
- Returns
- The converted value.
Implements Exiv2::Value.
◆ toInt64()
int64_t Exiv2::DataValue::toInt64 |
( |
size_t |
n = 0 | ) |
const |
|
overridevirtual |
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.
- Returns
- The converted value.
Implements Exiv2::Value.
◆ toRational()
Rational Exiv2::DataValue::toRational |
( |
size_t |
n = 0 | ) |
const |
|
overridevirtual |
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.
- Returns
- The converted value.
Implements Exiv2::Value.
◆ toString()
std::string Exiv2::DataValue::toString |
( |
size_t |
n | ) |
const |
|
overridevirtual |
Return the n-th component of the value as a string. The behaviour of this method may be undefined if there is no n-th component.
Reimplemented from Exiv2::Value.
◆ toUint32()
uint32_t Exiv2::DataValue::toUint32 |
( |
size_t |
n = 0 | ) |
const |
|
overridevirtual |
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.
- Returns
- The converted value.
Implements Exiv2::Value.
◆ write()
std::ostream & Exiv2::DataValue::write |
( |
std::ostream & |
os | ) |
const |
|
overridevirtual |
The documentation for this class was generated from the following file: