Exiv2::Internal::CiffHeader Class Reference

This class models the header of a CRW (Canon Raw data) image. It is the head of a CIFF parse tree, consisting of CiffDirectory and CiffEntry objects. Most of its methods will walk the parse tree to perform the requested action. More...

#include <crwimage_int.hpp>

Collaboration diagram for Exiv2::Internal::CiffHeader:

Collaboration graph
[legend]
List of all members.

Public Types

typedef std::auto_ptr< CiffHeaderAutoPtr
 CiffHeader auto_ptr type.

Public Member Functions

Creators
 CiffHeader ()
 Default constructor.
virtual ~CiffHeader ()
 Virtual destructor.
Manipulators
void read (const byte *pData, uint32_t size)
 Read the CRW image from a data buffer, starting with the Ciff header.
void add (uint16_t crwTagId, uint16_t crwDir, DataBuf buf)
 Set the value of entry crwTagId in directory crwDir to buf. If this tag doesn't exist, it is added along with all directories needed.
void remove (uint16_t crwTagId, uint16_t crwDir)
 Remove entry crwTagId in directory crwDir from the parse tree. If it's the last entry in the directory, the directory is removed as well, etc.
Accessors
void write (Blob &blob) const
 Write the CRW image to the binary image blob, starting with the Ciff header. This method appends to the blob.
void decode (Image &image) const
 Decode the CRW image and add it to image.
void print (std::ostream &os, const std::string &prefix="") const
 Print debug info for the CRW image to os.
ByteOrder byteOrder () const
 Return the byte order (little or big endian).
CiffComponentfindComponent (uint16_t crwTagId, uint16_t crwDir) const
 Finds crwTagId in directory crwDir, returning a pointer to the component or 0 if not found.

Static Public Member Functions

const char * signature ()
 Return a pointer to the Canon CRW signature.

Detailed Description

This class models the header of a CRW (Canon Raw data) image. It is the head of a CIFF parse tree, consisting of CiffDirectory and CiffEntry objects. Most of its methods will walk the parse tree to perform the requested action.


Member Function Documentation

void Exiv2::Internal::CiffHeader::add uint16_t  crwTagId,
uint16_t  crwDir,
DataBuf  buf
 

Set the value of entry crwTagId in directory crwDir to buf. If this tag doesn't exist, it is added along with all directories needed.

Parameters:
crwTagId Tag to be added.
crwDir Parent directory of the tag.
buf Value to be set.

void Exiv2::Internal::CiffHeader::decode Image image  )  const
 

Decode the CRW image and add it to image.

Walk the parse tree and convert CIFF entries to metadata entries which are added to image.

Parameters:
image Image to add metadata to

void Exiv2::Internal::CiffHeader::print std::ostream &  os,
const std::string &  prefix = ""
const
 

Print debug info for the CRW image to os.

Parameters:
os Output stream to write to.
prefix Prefix to be written before each line of output.

void Exiv2::Internal::CiffHeader::read const byte pData,
uint32_t  size
 

Read the CRW image from a data buffer, starting with the Ciff header.

Parameters:
pData Pointer to the data buffer.
size Number of bytes in the data buffer.
Exceptions:
Error If the image cannot be parsed.

void Exiv2::Internal::CiffHeader::remove uint16_t  crwTagId,
uint16_t  crwDir
 

Remove entry crwTagId in directory crwDir from the parse tree. If it's the last entry in the directory, the directory is removed as well, etc.

Parameters:
crwTagId Tag id to be removed.
crwDir Parent directory of the tag.

void Exiv2::Internal::CiffHeader::write Blob blob  )  const
 

Write the CRW image to the binary image blob, starting with the Ciff header. This method appends to the blob.

Parameters:
blob Binary image to add to.
Exceptions:
Error If the image cannot be written.


The documentation for this class was generated from the following files:
Generated on Thu Dec 31 03:58:16 2009 for Exiv2 by  doxygen 1.3.9.1