Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Examples

Exiv2::Iptcdatum Class Reference

Information related to one Iptc dataset. More...

#include <iptc.hpp>

Inheritance diagram for Exiv2::Iptcdatum:

Inheritance graph
[legend]
Collaboration diagram for Exiv2::Iptcdatum:

Collaboration graph
[legend]
List of all members.

Public Member Functions

void clearModified ()
 Not really meant for public use, but public so IptcData doesn't have to be made a friend.
Creators
 Iptcdatum (const IptcKey &key, const Value *value=0)
 Constructor for new tags created by an application. The Iptcdatum is created from a key / value pair. Iptcdatum copies (clones) the value if one is provided. Alternatively, a program can create an 'empty' Iptcdatum with only a key and set the value using setValue().
 Iptcdatum (const Iptcdatum &rhs)
 Copy constructor.
virtual ~Iptcdatum ()
 Destructor.
Manipulators
Iptcdatumoperator= (const Iptcdatum &rhs)
 Assignment operator.
void setValue (const Value *pValue)
 Set the value. This method copies (clones) the value pointed to by pValue.
void setValue (const std::string &buf)
 Set the value to the string buf. Uses Value::read(const std::string& buf). If the Iptcdatum does not have a value yet, then an StringValue is created.
Accessors
long copy (byte *buf, ByteOrder byteOrder) const
 Write value to a data buffer and return the number of bytes written.
std::string key () const
 Return the key of the Iptcdatum. The key is of the form 'Iptc.recordName.datasetName'. Note however that the key is not necessarily unique, i.e., an IptcData may contain multiple metadata with the same key.
const char * recordName () const
 Return the name of the record.
uint16 record () const
 Return the record id.
std::string tagName () const
 Return the name of the tag (aka dataset).
uint16 tag () const
 Return the tag (aka dataset) number.
TypeId typeId () const
 Return the type id of the value.
const char * typeName () const
 Return the name of the type.
long typeSize () const
 Return the size in bytes of one component of this type.
long count () const
 Return the number of components in the value.
long size () const
 Return the size of the value in bytes.
bool modified () const
 Return true if value was modified, otherwise false.
std::string toString () const
 Return the value as a string.
long toLong (long n=0) const
 Return the n-th component of the value converted to long. The return value is -1 if the value of the Iptcdatum is not set and the behaviour of the method is undefined if there is no n-th component.
float toFloat (long n=0) const
 Return the n-th component of the value converted to float. The return value is -1 if the value of the Iptcdatum is not set and the behaviour of the method is undefined if there is no n-th component.
Rational toRational (long n=0) const
 Return the n-th component of the value converted to Rational. The return value is -1/1 if the value of the Iptcdatum is not set and the behaviour of the method is undefined if there is no n-th component.
ValuegetValue () const
 Return a pointer to a copy (clone) of the value. The caller is responsible to delete this copy when it's no longer needed.
const Valuevalue () const
 Return a constant reference to the value.

Detailed Description

Information related to one Iptc dataset.


Constructor & Destructor Documentation

Exiv2::Iptcdatum::Iptcdatum const IptcKey key,
const Value value = 0
[explicit]
 

Constructor for new tags created by an application. The Iptcdatum is created from a key / value pair. Iptcdatum copies (clones) the value if one is provided. Alternatively, a program can create an 'empty' Iptcdatum with only a key and set the value using setValue().

Parameters:
key The key of the Iptcdatum.
value Pointer to a Iptcdatum value.
Exceptions:
Error ("Invalid key") if the key cannot be parsed and converted to a tag number and record id.


Member Function Documentation

long Exiv2::Iptcdatum::copy byte buf,
ByteOrder  byteOrder
const [inline, virtual]
 

Write value to a data buffer and return the number of bytes written.

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 Applicable byte order (little or big endian).
Returns:
Number of characters written.

Implements Exiv2::Metadatum.

Value* Exiv2::Iptcdatum::getValue  )  const [inline, virtual]
 

Return a pointer to a copy (clone) of the value. The caller is responsible to delete this copy when it's no longer needed.

This method is provided for users who need full control over the value. A caller may, e.g., downcast the pointer to the appropriate subclass of Value to make use of the interface of the subclass to set or modify its contents.

Returns:
A pointer to a copy (clone) of the value, 0 if the value is not set.

Implements Exiv2::Metadatum.

uint16 Exiv2::Iptcdatum::record  )  const [inline]
 

Return the record id.

Returns:
record id

const char* Exiv2::Iptcdatum::recordName  )  const [inline]
 

Return the name of the record.

Returns:
record name
Exceptions:
Error("Unknown record");

std::string Exiv2::Iptcdatum::tagName  )  const [inline, virtual]
 

Return the name of the tag (aka dataset).

Returns:
tag name
Exceptions:
Error("No dataSet for record Id") if tag is unknown

Implements Exiv2::Metadatum.

const Value& Exiv2::Iptcdatum::value  )  const [inline, virtual]
 

Return a constant reference to the value.

This method is provided mostly for convenient and versatile output of the value which can (to some extent) be formatted through standard stream manipulators. Do not attempt to write to the value through this reference.

Example:

          IptcData::const_iterator i = iptcData.findKey(key);
          if (i != iptcData.end()) {
              std::cout << i->key() << " " << std::hex << i->value() << "\n";
          }

Returns:
A constant reference to the value.
Exceptions:
Error ("Value not set") if the value is not set.

Implements Exiv2::Metadatum.


The documentation for this class was generated from the following files:
Generated on Mon Sep 13 22:01:44 2004 for Exiv2 by doxygen 1.3.8