25#include "rawspeedconfig.h"
59 std::map<TiffTag, TiffEntryOwner>
entries;
61 virtual void anchor()
const;
85 static constexpr int Depth = 4 + 1;
117 [[nodiscard]]
TiffEntry* RAWSPEED_READONLY
126 [[nodiscard]]
const std::vector<TiffIFDOwner>&
getSubIFDs()
const {
139 void anchor()
const override;
154 const char* context =
"") {
160 ThrowTPE(
"Failed to parse TIFF endianness information in %s.", context);
bool hasPatternAt(std::string_view pattern, size_type relPos) const
std::vector< TiffIFDOwner > subIFDs
TiffEntry *RAWSPEED_READONLY getEntryRecursive(TiffTag tag) const
virtual void anchor() const
const TiffIFD * getIFDWithTag(TiffTag tag, uint32_t index=0) const
TiffIFD & operator=(const TiffIFD &)=delete
uint32_t getNextIFD() const
std::vector< const TiffIFD * > getIFDsWithTag(TiffTag tag) const
std::map< TiffTag, TiffEntryOwner > entries
bool RAWSPEED_READONLY hasEntry(TiffTag tag) const
void recursivelyCheckSubIFDs(int headroom) const
const std::vector< TiffIFDOwner > & getSubIFDs() const
TiffEntry * getEntry(TiffTag tag) const
void checkSubIFDs(int headroom) const
TiffRootIFDOwner parseMakerNote(NORangesSet< Buffer > *ifds, const TiffEntry *t)
void add(TiffIFDOwner subIFD)
TiffIFD(const TiffIFD &)=delete
bool hasEntryRecursive(TiffTag tag) const
void parseIFDEntry(NORangesSet< Buffer > *ifds, ByteStream &bs)
virtual ~TiffIFD()=default
void recursivelyIncrementSubIFDCount()
const DataBuffer rootBuffer
TiffRootIFD(TiffIFD *parent_, NORangesSet< Buffer > *ifds, DataBuffer data, uint32_t offset)
void anchor() const override
std::unique_ptr< TiffIFD > TiffIFDOwner
std::unique_ptr< TiffRootIFD > TiffRootIFDOwner
Endianness getTiffByteOrder(ByteStream bs, uint32_t pos, const char *context="")
std::unique_ptr< TiffEntry > TiffEntryOwner
static constexpr int RecursiveSubIFDCount
static constexpr int SubIFDCount
static constexpr int Depth