| Exiv2

Loading...
Searching...
No Matches
Public Types | List of all members
Exiv2::Internal::TiffVisitor Class Referenceabstract

Abstract base class defining the interface for TIFF composite visitors (Visitor pattern). More...

`#include <tiffvisitor_int.hpp>`

Inheritance diagram for Exiv2::Internal::TiffVisitor:
[legend]

## Public Types
enum | GoEvent { geTraverse = 0 , geKnownMakernote = 1 }
| Events for the stop/go flag. See setGo(). More...

## Public Member Functions
Creators
virtual | ~TiffVisitor ()=default
| Virtual destructor.
Manipulators
void | setGo (GoEvent event, bool go)
| Set the stop/go flag: true for go, false for stop.
virtual void | visitEntry (TiffEntry *object)=0
| Operation to perform for a TIFF entry.
virtual void | visitDataEntry (TiffDataEntry *object)=0
| Operation to perform for a TIFF data entry.
virtual void | visitImageEntry (TiffImageEntry *object)=0
| Operation to perform for a TIFF image entry.
virtual void | visitSizeEntry (TiffSizeEntry *object)=0
| Operation to perform for a TIFF size entry.
virtual void | visitDirectory (TiffDirectory *object)=0
| Operation to perform for a TIFF directory.
virtual void | visitDirectoryNext (TiffDirectory *object)
| Operation to perform for a TIFF directory, after all components and before the next entry is processed.
virtual void | visitDirectoryEnd (TiffDirectory *object)
| Operation to perform for a TIFF directory, at the end of the processing.
virtual void | visitSubIfd (TiffSubIfd *object)=0
| Operation to perform for a TIFF sub-IFD.
virtual void | visitMnEntry (TiffMnEntry *object)=0
| Operation to perform for the makernote component.
virtual void | visitIfdMakernote (TiffIfdMakernote *object)=0
| Operation to perform for an IFD makernote.
virtual void | visitIfdMakernoteEnd (TiffIfdMakernote *object)
| Operation to perform after processing an IFD makernote.
virtual void | visitBinaryArray (TiffBinaryArray *object)=0
| Operation to perform for a binary array.
virtual void | visitBinaryArrayEnd (TiffBinaryArray *object)
| Operation to perform for a TIFF binary array, at the end of the processing.
virtual void | visitBinaryElement (TiffBinaryElement *object)=0
| Operation to perform for an element of a binary array.
Accessors
bool | go (GoEvent event) const
| Check if stop flag for event is clear, return true if it's clear.

## Detailed Description

Abstract base class defining the interface for TIFF composite visitors (Visitor pattern).

A concrete visitor class is used as shown in the example below. Accept() will invoke the member function corresponding to the concrete type of each component in the composite.

void visitorExample(Exiv2::TiffComponent* tiffComponent, Exiv2::TiffVisitor& visitor)
{
tiffComponent->accept(visitor);
}
Exiv2::Internal::TiffComponent
Interface class for components of a TIFF directory hierarchy (Composite pattern). Both TIFF directori...
Definition tiffcomposite_int.hpp:152
Exiv2::Internal::TiffComponent::accept
void accept(TiffVisitor &visitor)
Interface to accept visitors (Visitor pattern). Visitors can perform operations on all components of ...
Definition tiffcomposite_int.cpp:611
Exiv2::Internal::TiffVisitor
Abstract base class defining the interface for TIFF composite visitors (Visitor pattern).
Definition tiffvisitor_int.hpp:39

## Member Enumeration Documentation

## ◆ GoEvent

enum Exiv2::Internal::TiffVisitor::GoEvent

Events for the stop/go flag. See setGo().

Enumerator
geTraverse | Signal to control traversing of the composite tree.
geKnownMakernote | Signal used by TiffReader to signal an unknown makernote.

## Member Function Documentation

## ◆ setGo()

void Exiv2::Internal::TiffVisitor::setGo | ( | GoEvent | event,
|  | bool | go )

Set the stop/go flag: true for go, false for stop.

This mechanism is used by visitors and components to signal special events. Specifically, TiffFinder sets the geTraverse flag as soon as it finds the correct component to signal to components that the search should be aborted. TiffReader uses geKnownMakernote to signal problems reading a makernote to the TiffMnEntry component. There is an array of flags, one for each defined event, so different signals can be used independent of each other.

References go().

Referenced by Exiv2::Internal::TiffFinder::findObject(), Exiv2::Internal::TiffFinder::init(), Exiv2::Internal::TiffEncoder::setDirty(), and Exiv2::Internal::TiffReader::visitIfdMakernote().

## ◆ visitBinaryArray()

virtual void Exiv2::Internal::TiffVisitor::visitBinaryArray | ( | TiffBinaryArray * | object | ) |
| pure virtual

Operation to perform for a binary array.

Implemented in Exiv2::Internal::TiffCopier, Exiv2::Internal::TiffDecoder, Exiv2::Internal::TiffEncoder, Exiv2::Internal::TiffFinder, and Exiv2::Internal::TiffReader.

Referenced by Exiv2::Internal::TiffBinaryArray::doAccept().

## ◆ visitBinaryArrayEnd()

void Exiv2::Internal::TiffVisitor::visitBinaryArrayEnd | ( | TiffBinaryArray * | object | ) |
| virtual

Operation to perform for a TIFF binary array, at the end of the processing.

Reimplemented in Exiv2::Internal::TiffEncoder.

Referenced by Exiv2::Internal::TiffBinaryArray::doAccept().

## ◆ visitBinaryElement()

virtual void Exiv2::Internal::TiffVisitor::visitBinaryElement | ( | TiffBinaryElement * | object | ) |
| pure virtual

Operation to perform for an element of a binary array.

Implemented in Exiv2::Internal::TiffCopier, Exiv2::Internal::TiffDecoder, Exiv2::Internal::TiffEncoder, Exiv2::Internal::TiffFinder, and Exiv2::Internal::TiffReader.

Referenced by Exiv2::Internal::TiffBinaryElement::doAccept().

## ◆ visitDataEntry()

virtual void Exiv2::Internal::TiffVisitor::visitDataEntry | ( | TiffDataEntry * | object | ) |
| pure virtual

Operation to perform for a TIFF data entry.

Implemented in Exiv2::Internal::TiffCopier, Exiv2::Internal::TiffDecoder, Exiv2::Internal::TiffEncoder, Exiv2::Internal::TiffFinder, and Exiv2::Internal::TiffReader.

Referenced by Exiv2::Internal::TiffDataEntry::doAccept().

## ◆ visitDirectory()

virtual void Exiv2::Internal::TiffVisitor::visitDirectory | ( | TiffDirectory * | object | ) |
| pure virtual

Operation to perform for a TIFF directory.

Implemented in Exiv2::Internal::TiffCopier, Exiv2::Internal::TiffDecoder, Exiv2::Internal::TiffEncoder, Exiv2::Internal::TiffFinder, and Exiv2::Internal::TiffReader.

Referenced by Exiv2::Internal::TiffDirectory::doAccept().

## ◆ visitDirectoryNext()

void Exiv2::Internal::TiffVisitor::visitDirectoryNext | ( | TiffDirectory * | object | ) |
| virtual

Operation to perform for a TIFF directory, after all components and before the next entry is processed.

Reimplemented in Exiv2::Internal::TiffEncoder.

Referenced by Exiv2::Internal::TiffDirectory::doAccept().

## ◆ visitEntry()

virtual void Exiv2::Internal::TiffVisitor::visitEntry | ( | TiffEntry * | object | ) |
| pure virtual

Operation to perform for a TIFF entry.

Implemented in Exiv2::Internal::TiffCopier, Exiv2::Internal::TiffDecoder, Exiv2::Internal::TiffEncoder, Exiv2::Internal::TiffFinder, and Exiv2::Internal::TiffReader.

Referenced by Exiv2::Internal::TiffEntry::doAccept().

## ◆ visitIfdMakernote()

virtual void Exiv2::Internal::TiffVisitor::visitIfdMakernote | ( | TiffIfdMakernote * | object | ) |
| pure virtual

Operation to perform for an IFD makernote.

Implemented in Exiv2::Internal::TiffCopier, Exiv2::Internal::TiffDecoder, Exiv2::Internal::TiffEncoder, Exiv2::Internal::TiffFinder, and Exiv2::Internal::TiffReader.

Referenced by Exiv2::Internal::TiffIfdMakernote::doAccept().

## ◆ visitIfdMakernoteEnd()

void Exiv2::Internal::TiffVisitor::visitIfdMakernoteEnd | ( | TiffIfdMakernote * | object | ) |
| virtual

Operation to perform after processing an IFD makernote.

Reimplemented in Exiv2::Internal::TiffEncoder, and Exiv2::Internal::TiffReader.

Referenced by Exiv2::Internal::TiffIfdMakernote::doAccept().

## ◆ visitImageEntry()

virtual void Exiv2::Internal::TiffVisitor::visitImageEntry | ( | TiffImageEntry * | object | ) |
| pure virtual

Operation to perform for a TIFF image entry.

Implemented in Exiv2::Internal::TiffCopier, Exiv2::Internal::TiffDecoder, Exiv2::Internal::TiffEncoder, Exiv2::Internal::TiffFinder, and Exiv2::Internal::TiffReader.

Referenced by Exiv2::Internal::TiffImageEntry::doAccept().

## ◆ visitMnEntry()

virtual void Exiv2::Internal::TiffVisitor::visitMnEntry | ( | TiffMnEntry * | object | ) |
| pure virtual

Operation to perform for the makernote component.

Implemented in Exiv2::Internal::TiffCopier, Exiv2::Internal::TiffDecoder, Exiv2::Internal::TiffEncoder, Exiv2::Internal::TiffFinder, and Exiv2::Internal::TiffReader.

Referenced by Exiv2::Internal::TiffMnEntry::doAccept().

## ◆ visitSizeEntry()

virtual void Exiv2::Internal::TiffVisitor::visitSizeEntry | ( | TiffSizeEntry * | object | ) |
| pure virtual

Operation to perform for a TIFF size entry.

Implemented in Exiv2::Internal::TiffCopier, Exiv2::Internal::TiffDecoder, Exiv2::Internal::TiffEncoder, Exiv2::Internal::TiffFinder, and Exiv2::Internal::TiffReader.

Referenced by Exiv2::Internal::TiffSizeEntry::doAccept().

## ◆ visitSubIfd()

virtual void Exiv2::Internal::TiffVisitor::visitSubIfd | ( | TiffSubIfd * | object | ) |
| pure virtual

Operation to perform for a TIFF sub-IFD.

Implemented in Exiv2::Internal::TiffCopier, Exiv2::Internal::TiffDecoder, Exiv2::Internal::TiffEncoder, Exiv2::Internal::TiffFinder, and Exiv2::Internal::TiffReader.

Referenced by Exiv2::Internal::TiffSubIfd::doAccept().

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

- tiffvisitor_int.hpp
- tiffvisitor_int.cpp