Exiv2::Internal::TiffComponent Class Reference

Interface class for components of a TIFF directory hierarchy (Composite pattern). Both TIFF directories as well as entries implement this interface. A component can be uniquely identified by a tag, group tupel. This class is implemented as a NVI (Non-Virtual Interface) and it has an interface for visitors (Visitor pattern) to perform operations on all components. More...

#include <tiffcomposite_int.hpp>

Inheritance diagram for Exiv2::Internal::TiffComponent:

Inheritance graph
[legend]
List of all members.

Public Types

typedef std::auto_ptr< TiffComponentAutoPtr
 TiffComponent auto_ptr type.
typedef std::vector< TiffComponent * > Components
 Container type to hold all metadata.

Public Member Functions

Creators
 TiffComponent (uint16_t tag, uint16_t group)
 Constructor.
virtual ~TiffComponent ()
 Virtual destructor.
Manipulators
TiffComponentaddPath (uint16_t tag, TiffPath &tiffPath, TiffComponent *const pRoot)
 Add a TIFF entry tag to the component. Components on the path to the entry are added if they don't exist yet.
TiffComponentaddChild (AutoPtr tiffComponent)
 Add a child to the component. Default is to do nothing.
TiffComponentaddNext (AutoPtr tiffComponent)
 Add a "next" component to the component. Default is to do nothing.
void accept (TiffVisitor &visitor)
 Interface to accept visitors (Visitor pattern). Visitors can perform operations on all components of the composite.
void setStart (const byte *pStart)
 Set a pointer to the start of the binary representation of the component in a memory buffer. The buffer must be allocated and freed outside of this class.
uint32_t write (IoWrapper &ioWrapper, ByteOrder byteOrder, int32_t offset, uint32_t valueIdx, uint32_t dataIdx, uint32_t &imageIdx)
 Write a TiffComponent to a binary image.
Accessors
uint16_t tag () const
 Return the tag of this entry.
uint16_t group () const
 Return the group id of this component.
bytestart () const
 Return a pointer to the start of the binary representation of the component.
uint32_t writeData (IoWrapper &ioWrapper, ByteOrder byteOrder, int32_t offset, uint32_t dataIdx, uint32_t &imageIdx) const
 Write the IFD data of this component to a binary image. Return the number of bytes written. Components derived from TiffEntryBase implement this method if needed.
uint32_t writeImage (IoWrapper &ioWrapper, ByteOrder byteOrder) const
 Write the image data of this component to a binary image. Return the number of bytes written. TIFF components implement this method if needed.
uint32_t size () const
 Return the size in bytes of the IFD value of this component when written to a binary image.
uint32_t count () const
 Return the number of components in this component.
uint32_t sizeData () const
 Return the size in bytes of the IFD data of this component when written to a binary image. This is a support function for write(). Components derived from TiffEntryBase implement this method corresponding to their implementation of writeData().
uint32_t sizeImage () const
 Return the size in bytes of the image data of this component when written to a binary image. This is a support function for write(). TIFF components implement this method corresponding to their implementation of writeImage().
virtual int idx () const
 Return the unique id of the entry in the image.

Protected Member Functions

Protected Manipulators
virtual TiffComponentdoAddPath (uint16_t tag, TiffPath &tiffPath, TiffComponent *const pRoot)
 Implements addPath(). The default implementation does nothing.
virtual TiffComponentdoAddChild (AutoPtr tiffComponent)
 Implements addChild(). The default implementation does nothing.
virtual TiffComponentdoAddNext (AutoPtr tiffComponent)
 Implements addNext(). The default implementation does nothing.
virtual void doAccept (TiffVisitor &visitor)=0
 Implements accept().
virtual uint32_t doWrite (IoWrapper &ioWrapper, ByteOrder byteOrder, int32_t offset, uint32_t valueIdx, uint32_t dataIdx, uint32_t &imageIdx)=0
 Implements write().
Protected Accessors
virtual uint32_t doWriteData (IoWrapper &ioWrapper, ByteOrder byteOrder, int32_t offset, uint32_t dataIdx, uint32_t &imageIdx) const =0
 Implements writeData().
virtual uint32_t doWriteImage (IoWrapper &ioWrapper, ByteOrder byteOrder) const =0
 Implements writeImage().
virtual uint32_t doSize () const =0
 Implements size().
virtual uint32_t doCount () const =0
 Implements count().
virtual uint32_t doSizeData () const =0
 Implements sizeData().
virtual uint32_t doSizeImage () const =0
 Implements sizeImage().

Detailed Description

Interface class for components of a TIFF directory hierarchy (Composite pattern). Both TIFF directories as well as entries implement this interface. A component can be uniquely identified by a tag, group tupel. This class is implemented as a NVI (Non-Virtual Interface) and it has an interface for visitors (Visitor pattern) to perform operations on all components.


Member Function Documentation

void Exiv2::Internal::TiffComponent::accept TiffVisitor visitor  ) 
 

Interface to accept visitors (Visitor pattern). Visitors can perform operations on all components of the composite.

Parameters:
visitor The visitor.

TiffComponent * Exiv2::Internal::TiffComponent::addChild AutoPtr  tiffComponent  ) 
 

Add a child to the component. Default is to do nothing.

Parameters:
tiffComponent Auto pointer to the component to add.
Returns:
Return a pointer to the newly added child element or 0.

TiffComponent * Exiv2::Internal::TiffComponent::addNext AutoPtr  tiffComponent  ) 
 

Add a "next" component to the component. Default is to do nothing.

Parameters:
tiffComponent Auto pointer to the component to add.
Returns:
Return a pointer to the newly added "next" element or 0.

TiffComponent * Exiv2::Internal::TiffComponent::addPath uint16_t  tag,
TiffPath tiffPath,
TiffComponent *const   pRoot
 

Add a TIFF entry tag to the component. Components on the path to the entry are added if they don't exist yet.

Parameters:
tag The tag of the new entry
tiffPath A path from the TIFF root element to a TIFF entry.
pRoot Pointer to the root component of the TIFF composite.
Returns:
A pointer to the newly added TIFF entry.

uint32_t Exiv2::Internal::TiffComponent::write IoWrapper ioWrapper,
ByteOrder  byteOrder,
int32_t  offset,
uint32_t  valueIdx,
uint32_t  dataIdx,
uint32_t &  imageIdx
 

Write a TiffComponent to a binary image.

Parameters:
ioWrapper IO wrapper to which the TiffComponent is written.
byteOrder Applicable byte order (little or big endian).
offset Offset from the start of the image (TIFF header) to the component.
valueIdx Index of the component to be written relative to offset.
dataIdx Index of the data area of the component relative to offset.
imageIdx Index of the image data area relative to offset.
Returns:
Number of bytes written to the IO wrapper including all nested components.
Exceptions:
Error If the component cannot be written.


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