Exiv2: value.hpp File Reference

- Main Page
- Namespaces
- Classes
- Files
- Examples

- Search for |

# value.hpp File Reference

Value interface and concrete subclasses. More...

`#include "types.hpp"`
`#include <string>`
`#include <vector>`
`#include <map>`
`#include <iostream>`
`#include <sstream>`
`#include <memory>`
`#include <cstring>`

Include dependency graph for value.hpp:

This graph shows which files directly or indirectly include this file:

## Namespaces
namespace | Exiv2
## Classes
class | Exiv2::Value
| Common interface for all types of values used with metadata. More...
class | Exiv2::DataValue
| Value for an undefined data type. More...
class | Exiv2::StringValueBase
| Abstract base class for a string based Value type. More...
class | Exiv2::StringValue
| Value for string type. More...
class | Exiv2::AsciiValue
| Value for an Ascii string type. More...
class | Exiv2::CommentValue
| Value for an Exif comment. More...
struct | Exiv2::CommentValue::CharsetTable
| Information pertaining to the defined character sets. More...
class | Exiv2::CommentValue::CharsetInfo
| Charset information lookup functions. Implemented as a static class. More...
class | Exiv2::XmpValue
| Base class for all Exiv2 values used to store XMP property values. More...
class | Exiv2::XmpTextValue
| Value type suitable for simple XMP properties and XMP nodes of complex types which are not parsed into specific values. More...
class | Exiv2::XmpArrayValue
| Value type for simple arrays. Each item in the array is a simple value, without qualifiers. The array may be an ordered (seq), unordered (bag) or alternative array (alt). The array items must not contain qualifiers. For language alternatives use LangAltValue. More...
class | Exiv2::LangAltValue
| Value type for XMP language alternative properties. More...
class | Exiv2::DateValue
| Value for simple ISO 8601 dates More...
struct | Exiv2::DateValue::Date
| Simple Date helper structure. More...
class | Exiv2::TimeValue
| Value for simple ISO 8601 times. More...
struct | Exiv2::TimeValue::Time
| Simple Time helper structure. More...
class | Exiv2::ValueType< T >
| Template for a Value of a basic type. This is used for unsigned and signed short, long and rationals. More...
## Typedefs
typedef ValueType< uint16_t > | Exiv2::UShortValue
| Unsigned short value type.
typedef ValueType< uint32_t > | Exiv2::ULongValue
| Unsigned long value type.
typedef ValueType< URational > | Exiv2::URationalValue
| Unsigned rational value type.
typedef ValueType< int16_t > | Exiv2::ShortValue
| Signed short value type.
typedef ValueType< int32_t > | Exiv2::LongValue
| Signed long value type.
typedef ValueType< Rational > | Exiv2::RationalValue
| Signed rational value type.
## Functions
std::ostream & | Exiv2::operator<< (std::ostream &os, const Value &value)
| Output operator for Value types.
template<typename T>
TypeId | Exiv2::getType ()
| Template to determine the TypeId for a type T.
template<>
TypeId | Exiv2::getType< uint16_t > ()
| Specialization for an unsigned short.
template<>
TypeId | Exiv2::getType< uint32_t > ()
| Specialization for an unsigned long.
template<>
TypeId | Exiv2::getType< URational > ()
| Specialization for an unsigned rational.
template<>
TypeId | Exiv2::getType< int16_t > ()
| Specialization for a signed short.
template<>
TypeId | Exiv2::getType< int32_t > ()
| Specialization for a signed long.
template<>
TypeId | Exiv2::getType< Rational > ()
| Specialization for a signed rational.
template<typename T>
T | Exiv2::getValue (const byte *buf, ByteOrder byteOrder)
| Read a value of type T from the data buffer.
template<typename T>
long | Exiv2::toData (byte *buf, T t, ByteOrder byteOrder)
| Convert a value of type T to data, write the data to the data buffer.
template<>
long | Exiv2::toData (byte *buf, uint16_t t, ByteOrder byteOrder)
| Specialization to write an unsigned short to the data buffer. Return the number of bytes written.
template<>
long | Exiv2::toData (byte *buf, uint32_t t, ByteOrder byteOrder)
| Specialization to write an unsigned long to the data buffer. Return the number of bytes written.
template<>
long | Exiv2::toData (byte *buf, URational t, ByteOrder byteOrder)
| Specialization to write an unsigned rational to the data buffer. Return the number of bytes written.
template<>
long | Exiv2::toData (byte *buf, int16_t t, ByteOrder byteOrder)
| Specialization to write a signed short to the data buffer. Return the number of bytes written.
template<>
long | Exiv2::toData (byte *buf, int32_t t, ByteOrder byteOrder)
| Specialization to write a signed long to the data buffer. Return the number of bytes written.
template<>
long | Exiv2::toData (byte *buf, Rational t, ByteOrder byteOrder)
| Specialization to write a signed rational to the data buffer. Return the number of bytes written.

## Detailed Description

Value interface and concrete subclasses.

Version:

Rev
  1366

Author:
  Andreas Huggel (ahu) ahuggel@gmx.net

Date:
  09-Jan-04, ahu: created 11-Feb-04, ahu: isolated as a component 31-Jul-04, brad: added Time, Data and String values