Exiv2
Friends | List of all members
Exiv2::Internal::TiffDataEntry Class Reference

A standard TIFF IFD entry consisting of a value which is an offset to a data area and the data area. The size of the data area is provided in a related TiffSizeEntry, tag and group of which are set in the constructor. More...

#include <tiffcomposite_int.hpp>

Inheritance diagram for Exiv2::Internal::TiffDataEntry:
Inheritance graph
[legend]

Public Member Functions

Creators
 TiffDataEntry (uint16_t tag, IfdId group, uint16_t szTag, IfdId szGroup)
 Constructor.
 
virtual ~TiffDataEntry ()
 Virtual destructor.
 
Manipulators
virtual void setStrips (const Value *pSize, const byte *pData, uint32_t sizeData, uint32_t baseOffset)
 Set the data areas ("strips"). More...
 
- Public Member Functions inherited from Exiv2::Internal::TiffDataEntryBase
 TiffDataEntryBase (uint16_t tag, IfdId group, uint16_t szTag, IfdId szGroup)
 Constructor.
 
virtual ~TiffDataEntryBase ()
 Virtual destructor.
 
uint16_t szTag () const
 Return the group of the entry which has the size.
 
IfdId szGroup () const
 Return the group of the entry which has the size.
 
- Public Member Functions inherited from Exiv2::Internal::TiffEntryBase
 TiffEntryBase (uint16_t tag, IfdId group, TiffType tiffType=ttUndefined)
 Default constructor.
 
virtual ~TiffEntryBase ()
 Virtual destructor.
 
void encode (TiffEncoder &encoder, const Exifdatum *datum)
 Encode a TIFF component from the metadatum provided and information from the encoder as needed. More...
 
void setOffset (int32_t offset)
 Set the offset.
 
void setData (byte *pData, int32_t size)
 Set pointer and size of the entry's data (not taking ownership of the data).
 
void setData (DataBuf buf)
 Set the entry's data buffer, taking ownership of the data buffer passed in.
 
void updateValue (Value::AutoPtr value, ByteOrder byteOrder)
 Update the value. Takes ownership of the pointer passed in. More...
 
void setValue (Value::AutoPtr value)
 Set tag value. Takes ownership of the pointer passed in. More...
 
TiffType tiffType () const
 Return the TIFF type.
 
int32_t offset () const
 Return the offset to the data area relative to the base for the component (usually the start of the TIFF header)
 
virtual int idx () const
 Return the unique id of the entry in the image.
 
const bytepData () const
 Return a pointer to the binary representation of the value of this component.
 
const ValuepValue () const
 Return a const pointer to the converted value of this component.
 
- Public Member Functions inherited from Exiv2::Internal::TiffComponent
 TiffComponent (uint16_t tag, IfdId group)
 Constructor.
 
virtual ~TiffComponent ()
 Virtual destructor.
 
TiffComponentaddPath (uint16_t tag, TiffPath &tiffPath, TiffComponent *const pRoot, AutoPtr object=AutoPtr(0))
 Add a TIFF entry tag to the component. Components on the path to the entry are added if they don't exist yet. More...
 
TiffComponentaddChild (AutoPtr tiffComponent)
 Add a child to the component. Default is to do nothing. More...
 
TiffComponentaddNext (AutoPtr tiffComponent)
 Add a "next" component to the component. Default is to do nothing. More...
 
void accept (TiffVisitor &visitor)
 Interface to accept visitors (Visitor pattern). Visitors can perform operations on all components of the composite. More...
 
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. More...
 
uint16_t tag () const
 Return the tag of this entry.
 
IfdId group () const
 Return the group id of this component.
 
bytestart () const
 Return a pointer to the start of the binary representation of the component.
 
AutoPtr clone () const
 Return an auto-pointer to a copy of itself (deep copy, but without any children). The caller owns this copy and the auto-pointer ensures that it will be deleted.
 
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().
 

Protected Member Functions

Protected Manipulators
virtual void doAccept (TiffVisitor &visitor)
 Implements accept().
 
virtual void doEncode (TiffEncoder &encoder, const Exifdatum *datum)
 Implements encode().
 
virtual uint32_t doWrite (IoWrapper &ioWrapper, ByteOrder byteOrder, int32_t offset, uint32_t valueIdx, uint32_t dataIdx, uint32_t &imageIdx)
 Implements write(). Write pointers into the data area to the ioWrapper, relative to the offsets in the value. Return the number of bytes written. The valueIdx argument is not used. More...
 
Protected Accessors
virtual TiffDataEntrydoClone () const
 Internal virtual copy constructor, implements clone().
 
virtual uint32_t doWriteData (IoWrapper &ioWrapper, ByteOrder byteOrder, int32_t offset, uint32_t dataIdx, uint32_t &imageIdx) const
 Implements writeData(). Write the data area to the ioWrapper. Return the number of bytes written.
 
virtual uint32_t doSizeData () const
 Implements sizeData(). Return the size of the data area.
 
- Protected Member Functions inherited from Exiv2::Internal::TiffEntryBase
 TiffEntryBase (const TiffEntryBase &rhs)
 Copy constructor (used to implement clone()).
 
void setCount (uint32_t count)
 Set the number of components in this entry.
 
void setIdx (int idx)
 Set the unique id of the entry in the image.
 
virtual uint32_t doCount () const
 Implements count().
 
virtual uint32_t doWriteImage (IoWrapper &ioWrapper, ByteOrder byteOrder) const
 Implements writeImage(). Standard TIFF entries have no image data: write nothing and return 0.
 
virtual uint32_t doSize () const
 Implements size(). Return the size of a standard TIFF entry.
 
virtual uint32_t doSizeImage () const
 Implements sizeImage(). Return 0.
 
- Protected Member Functions inherited from Exiv2::Internal::TiffComponent
virtual TiffComponentdoAddPath (uint16_t tag, TiffPath &tiffPath, TiffComponent *const pRoot, TiffComponent::AutoPtr object)
 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.
 

Friends

class TiffEncoder
 

Additional Inherited Members

- Public Types inherited from Exiv2::Internal::TiffComponent
typedef std::auto_ptr< TiffComponentAutoPtr
 TiffComponent auto_ptr type.
 
typedef std::vector< TiffComponent * > Components
 Container type to hold all metadata.
 
- Static Protected Member Functions inherited from Exiv2::Internal::TiffEntryBase
static uint32_t writeOffset (byte *buf, int32_t offset, TiffType tiffType, ByteOrder byteOrder)
 Helper function to write an offset to a preallocated binary buffer.
 

Detailed Description

A standard TIFF IFD entry consisting of a value which is an offset to a data area and the data area. The size of the data area is provided in a related TiffSizeEntry, tag and group of which are set in the constructor.

This component extracts the data areas ("strips") and makes them available in the higher level metadata. It is used, e.g., for Exif.Thumbnail.JPEGInterchangeFormat for which the size is provided in Exif.Thumbnail.JPEGInterchangeFormatLength.

Member Function Documentation

◆ doWrite()

uint32_t Exiv2::Internal::TiffDataEntry::doWrite ( IoWrapper ioWrapper,
ByteOrder  byteOrder,
int32_t  offset,
uint32_t  valueIdx,
uint32_t  dataIdx,
uint32_t &  imageIdx 
)
protectedvirtual

Implements write(). Write pointers into the data area to the ioWrapper, relative to the offsets in the value. Return the number of bytes written. The valueIdx argument is not used.

The number of components in the value determines how many offsets are written. Set the first value to 0, the second to the size of the first data area, etc. when creating a new data entry. Offsets will be adjusted on write. The type of the value can only be signed or unsigned short or long.

Reimplemented from Exiv2::Internal::TiffEntryBase.

References Exiv2::Internal::TiffComponent::count(), Exiv2::Internal::TiffEntryBase::idx(), Exiv2::Internal::TiffEntryBase::offset(), Exiv2::DataBuf::pData_, Exiv2::Internal::TiffEntryBase::pValue(), Exiv2::Internal::TiffComponent::size(), Exiv2::DataBuf::size_, Exiv2::Internal::TiffEntryBase::tiffType(), Exiv2::Value::toLong(), Exiv2::Internal::IoWrapper::write(), and Exiv2::Internal::TiffEntryBase::writeOffset().

◆ setStrips()

void Exiv2::Internal::TiffDataEntry::setStrips ( const Value pSize,
const byte pData,
uint32_t  sizeData,
uint32_t  baseOffset 
)
virtual

The documentation for this class was generated from the following files: