Exiv2
Loading...
Searching...
No Matches
Friends | List of all members
Exiv2::Internal::TiffDirectory Class Reference

This class models a TIFF directory (Ifd). It is a composite component of the TIFF tree. More...

#include <tiffcomposite_int.hpp>

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

Public Member Functions

Creators
 TiffDirectory (uint16_t tag, IfdId group, bool hasNext=true)
 Default constructor.
 
 ~TiffDirectory () override=default
 Virtual destructor.
 
NOT implemented
TiffDirectoryoperator= (const TiffDirectory &)=delete
 Assignment operator.
 
Accessors
bool hasNext () const
 Return true if the directory has a next pointer.
 
- Public Member Functions inherited from Exiv2::Internal::TiffComponent
constexpr TiffComponent (uint16_t tag, IfdId group)
 Constructor.
 
virtual ~TiffComponent ()=default
 Virtual destructor.
 
 TiffComponent (const TiffComponent &)=default
 
TiffComponentoperator= (const TiffComponent &)=default
 
TiffComponentaddPath (uint16_t tag, TiffPath &tiffPath, TiffComponent *pRoot, UniquePtr object=nullptr)
 Add a TIFF entry tag to the component. Components on the path to the entry are added if they don't exist yet.
 
TiffComponentaddChild (UniquePtr tiffComponent)
 Add a child to the component. Default is to do nothing.
 
TiffComponentaddNext (UniquePtr 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.
 
size_t write (IoWrapper &ioWrapper, ByteOrder byteOrder, size_t offset, size_t valueIdx, size_t dataIdx, size_t &imageIdx)
 Write a TiffComponent to a binary image.
 
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.
 
UniquePtr 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.
 
size_t writeData (IoWrapper &ioWrapper, ByteOrder byteOrder, size_t offset, size_t dataIdx, size_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.
 
size_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.
 
size_t size () const
 Return the size in bytes of the IFD value of this component when written to a binary image.
 
size_t count () const
 Return the number of components in this component.
 
size_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().
 
size_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 Creators
 TiffDirectory (const TiffDirectory &rhs)
 Copy constructor (used to implement clone()).
 
Protected Manipulators
TiffComponentdoAddPath (uint16_t tag, TiffPath &tiffPath, TiffComponent *pRoot, TiffComponent::UniquePtr object) override
 Implements addPath(). The default implementation does nothing.
 
TiffComponentdoAddChild (TiffComponent::UniquePtr tiffComponent) override
 Implements addChild(). The default implementation does nothing.
 
TiffComponentdoAddNext (TiffComponent::UniquePtr tiffComponent) override
 Implements addNext(). The default implementation does nothing.
 
void doAccept (TiffVisitor &visitor) override
 Implements accept().
 
size_t doWrite (IoWrapper &ioWrapper, ByteOrder byteOrder, size_t offset, size_t valueIdx, size_t dataIdx, size_t &imageIdx) override
 Implements write(). Write the TIFF directory, values and additional data, including the next-IFD, if any, to the ioWrapper, return the number of bytes written.
 
Protected Accessors
TiffDirectorydoClone () const override
 Internal virtual copy constructor, implements clone().
 
size_t doWriteData (IoWrapper &ioWrapper, ByteOrder byteOrder, size_t offset, size_t dataIdx, size_t &imageIdx) const override
 This class does not really implement writeData(), it only has write(). This method must not be called; it commits suicide.
 
size_t doWriteImage (IoWrapper &ioWrapper, ByteOrder byteOrder) const override
 Implements writeImage(). Write the image data of the TIFF directory to the ioWrapper by forwarding the call to each component as well as the next-IFD, if there is any. Return the number of bytes written.
 
size_t doSize () const override
 Implements size(). Return the size of the TIFF directory, values and additional data, including the next-IFD, if any.
 
size_t doCount () const override
 Implements count(). Return the number of entries in the TIFF directory. Does not count entries which are marked as deleted.
 
size_t doSizeData () const override
 This class does not really implement sizeData(), it only has size(). This method must not be called; it commits suicide.
 
size_t doSizeImage () const override
 Implements sizeImage(). Return the sum of the image sizes of all components plus that of the next-IFD, if there is any.
 
- Protected Member Functions inherited from Exiv2::Internal::TiffComponent

Friends

class TiffEncoder
 
class TiffDecoder
 

Additional Inherited Members

- Public Types inherited from Exiv2::Internal::TiffComponent
using UniquePtr = std::unique_ptr< TiffComponent >
 TiffComponent auto_ptr type.
 
using Components = std::vector< UniquePtr >
 Container type to hold all metadata.
 

Detailed Description

This class models a TIFF directory (Ifd). It is a composite component of the TIFF tree.

Member Function Documentation

◆ doAccept()

void Exiv2::Internal::TiffDirectory::doAccept ( TiffVisitor visitor)
overrideprotectedvirtual

◆ doAddChild()

TiffComponent * Exiv2::Internal::TiffDirectory::doAddChild ( TiffComponent::UniquePtr  tiffComponent)
overrideprotectedvirtual

Implements addChild(). The default implementation does nothing.

Reimplemented from Exiv2::Internal::TiffComponent.

◆ doAddNext()

TiffComponent * Exiv2::Internal::TiffDirectory::doAddNext ( TiffComponent::UniquePtr  tiffComponent)
overrideprotectedvirtual

Implements addNext(). The default implementation does nothing.

Reimplemented from Exiv2::Internal::TiffComponent.

◆ doAddPath()

TiffComponent * Exiv2::Internal::TiffDirectory::doAddPath ( uint16_t  tag,
TiffPath tiffPath,
TiffComponent pRoot,
TiffComponent::UniquePtr  object 
)
overrideprotectedvirtual

◆ doClone()

TiffDirectory * Exiv2::Internal::TiffDirectory::doClone ( ) const
overrideprotectedvirtual

Internal virtual copy constructor, implements clone().

Implements Exiv2::Internal::TiffComponent.

◆ doCount()

size_t Exiv2::Internal::TiffDirectory::doCount ( ) const
overrideprotectedvirtual

Implements count(). Return the number of entries in the TIFF directory. Does not count entries which are marked as deleted.

Implements Exiv2::Internal::TiffComponent.

◆ doSize()

size_t Exiv2::Internal::TiffDirectory::doSize ( ) const
overrideprotectedvirtual

Implements size(). Return the size of the TIFF directory, values and additional data, including the next-IFD, if any.

Implements Exiv2::Internal::TiffComponent.

References Exiv2::Internal::TiffComponent::count().

◆ doSizeData()

size_t Exiv2::Internal::TiffDirectory::doSizeData ( ) const
overrideprotectedvirtual

This class does not really implement sizeData(), it only has size(). This method must not be called; it commits suicide.

Implements Exiv2::Internal::TiffComponent.

◆ doSizeImage()

size_t Exiv2::Internal::TiffDirectory::doSizeImage ( ) const
overrideprotectedvirtual

Implements sizeImage(). Return the sum of the image sizes of all components plus that of the next-IFD, if there is any.

Implements Exiv2::Internal::TiffComponent.

◆ doWrite()

size_t Exiv2::Internal::TiffDirectory::doWrite ( IoWrapper ioWrapper,
ByteOrder  byteOrder,
size_t  offset,
size_t  valueIdx,
size_t  dataIdx,
size_t &  imageIdx 
)
overrideprotectedvirtual

◆ doWriteData()

size_t Exiv2::Internal::TiffDirectory::doWriteData ( IoWrapper ioWrapper,
ByteOrder  byteOrder,
size_t  offset,
size_t  dataIdx,
size_t &  imageIdx 
) const
overrideprotectedvirtual

This class does not really implement writeData(), it only has write(). This method must not be called; it commits suicide.

Implements Exiv2::Internal::TiffComponent.

◆ doWriteImage()

size_t Exiv2::Internal::TiffDirectory::doWriteImage ( IoWrapper ioWrapper,
ByteOrder  byteOrder 
) const
overrideprotectedvirtual

Implements writeImage(). Write the image data of the TIFF directory to the ioWrapper by forwarding the call to each component as well as the next-IFD, if there is any. Return the number of bytes written.

Implements Exiv2::Internal::TiffComponent.

References EXV_ERROR, and Exiv2::Internal::TiffComponent::writeImage().


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