25#include "rawspeedconfig.h"
45 std::vector<std::unique_ptr<const CiffIFD>>
mSubIFD;
46 std::map<CiffTag, std::unique_ptr<const CiffEntry>>
mEntry;
63 static constexpr int Depth = 3 + 1;
77 void add(std::unique_ptr<CiffIFD> subIFD);
78 void add(std::unique_ptr<CiffEntry> entry);
83 template <
typename Lambda>
84 std::vector<const CiffIFD*>
87 template <
typename Lambda>
89 const Lambda& f)
const;
95 [[nodiscard]] std::vector<const CiffIFD*>
97 [[nodiscard]] std::vector<const CiffIFD*> RAWSPEED_READONLY
99 [[nodiscard]] std::vector<const CiffIFD*> RAWSPEED_READONLY
106 [[nodiscard]]
const CiffEntry* RAWSPEED_READONLY
108 [[nodiscard]]
const CiffEntry* RAWSPEED_READONLY
110 [[nodiscard]]
const CiffEntry* RAWSPEED_READONLY
bool RAWSPEED_READONLY hasEntry(CiffTag tag) const
const CiffEntry *RAWSPEED_READONLY getEntryRecursiveIf(CiffTag tag, const Lambda &f) const
void recursivelyCheckSubIFDs(int headroom) const
std::vector< const CiffIFD * > RAWSPEED_READONLY getIFDsWithTag(CiffTag tag) const
void recursivelyIncrementSubIFDCount()
void add(std::unique_ptr< CiffIFD > subIFD)
std::vector< const CiffIFD * > RAWSPEED_READONLY getIFDsWithTagIf(CiffTag tag, const Lambda &f) const
const CiffEntry *RAWSPEED_READONLY getEntryRecursiveWhere(CiffTag tag, uint32_t isValue) const
std::vector< const CiffIFD * > RAWSPEED_READONLY getIFDsWithTagWhere(CiffTag tag, uint32_t isValue) const
const CiffEntry *RAWSPEED_READONLY getEntryRecursive(CiffTag tag) const
const CiffEntry *RAWSPEED_READONLY getEntry(CiffTag tag) const
bool RAWSPEED_READONLY hasEntryRecursive(CiffTag tag) const
void parseIFDEntry(NORangesSet< Buffer > *valueDatas, ByteStream valueData, ByteStream &dirEntries)
std::map< CiffTag, std::unique_ptr< const CiffEntry > > mEntry
std::vector< std::unique_ptr< const CiffIFD > > mSubIFD
void checkSubIFDs(int headroom) const
static constexpr int SubIFDCount
static constexpr int RecursiveSubIFDCount
static constexpr int Depth