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:
Inheritance graph
[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);
}
Interface class for components of a TIFF directory hierarchy (Composite pattern). Both TIFF directori...
Definition tiffcomposite_int.hpp:152
void accept(TiffVisitor &visitor)
Interface to accept visitors (Visitor pattern). Visitors can perform operations on all components of ...
Definition tiffcomposite_int.cpp:611
Abstract base class defining the interface for TIFF composite visitors (Visitor pattern)
Definition tiffvisitor_int.hpp:39

Member Enumeration Documentation

◆ 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

◆ 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

◆ visitDataEntry()

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

◆ visitDirectory()

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

◆ 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

◆ visitIfdMakernote()

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

◆ 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

◆ visitMnEntry()

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

◆ visitSizeEntry()

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

◆ visitSubIfd()

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

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