|
RawSpeed
fast raw decoding library
|
#include "tiff/CiffIFD.h"
Classes | |
| struct | Limits |
Public Member Functions | |
| CiffIFD (CiffIFD *parent) | |
| CiffIFD (CiffIFD *parent, ByteStream directory) | |
| std::vector< const CiffIFD * > RAWSPEED_READONLY | getIFDsWithTag (CiffTag tag) const |
| std::vector< const CiffIFD * > RAWSPEED_READONLY | getIFDsWithTagWhere (CiffTag tag, uint32_t isValue) const |
| std::vector< const CiffIFD * > RAWSPEED_READONLY | getIFDsWithTagWhere (CiffTag tag, const std::string &isValue) const |
| bool RAWSPEED_READONLY | hasEntry (CiffTag tag) const |
| bool RAWSPEED_READONLY | hasEntryRecursive (CiffTag tag) const |
| const CiffEntry *RAWSPEED_READONLY | getEntry (CiffTag tag) const |
| const CiffEntry *RAWSPEED_READONLY | getEntryRecursive (CiffTag tag) const |
| const CiffEntry *RAWSPEED_READONLY | getEntryRecursiveWhere (CiffTag tag, uint32_t isValue) const |
| const CiffEntry *RAWSPEED_READONLY | getEntryRecursiveWhere (CiffTag tag, const std::string &isValue) const |
| template<typename Lambda> | |
| std::vector< const CiffIFD * > | getIFDsWithTagIf (CiffTag tag, const Lambda &f) const |
| template<typename Lambda> | |
| const CiffEntry * | getEntryRecursiveIf (CiffTag tag, const Lambda &f) const |
Private Member Functions | |
| void | recursivelyIncrementSubIFDCount () |
| void | checkSubIFDs (int headroom) const |
| void | recursivelyCheckSubIFDs (int headroom) const |
| void | add (std::unique_ptr< CiffIFD > subIFD) |
| void | add (std::unique_ptr< CiffEntry > entry) |
| void | parseIFDEntry (NORangesSet< Buffer > *valueDatas, ByteStream valueData, ByteStream &dirEntries) |
| template<typename Lambda> | |
| std::vector< const CiffIFD * > RAWSPEED_READONLY | getIFDsWithTagIf (CiffTag tag, const Lambda &f) const |
| template<typename Lambda> | |
| const CiffEntry *RAWSPEED_READONLY | getEntryRecursiveIf (CiffTag tag, const Lambda &f) const |
Private Attributes | |
| CiffIFD *const | parent |
| std::vector< std::unique_ptr< const CiffIFD > > | mSubIFD |
| std::map< CiffTag, std::unique_ptr< const CiffEntry > > | mEntry |
| int | subIFDCount = 0 |
| int | subIFDCountRecursive = 0 |
|
explicit |
Definition at line 68 of file CiffIFD.cpp.
References CiffIFD(), parent, recursivelyCheckSubIFDs(), and recursivelyIncrementSubIFDCount().
Referenced by CiffIFD(), CiffIFD(), getEntryRecursiveIf(), recursivelyCheckSubIFDs(), and recursivelyIncrementSubIFDCount().
| rawspeed::CiffIFD::CiffIFD | ( | CiffIFD * | parent, |
| ByteStream | directory ) |
Definition at line 76 of file CiffIFD.cpp.
References CiffIFD(), assert(), rawspeed::CiffTagsWeCareAbout, rawspeed::Buffer::getSize(), rawspeed::ByteStream::getStream(), rawspeed::ByteStream::getU16(), rawspeed::ByteStream::getU32(), mEntry, mSubIFD, parseIFDEntry(), rawspeed::ByteStream::setPosition(), subIFDCount, subIFDCountRecursive, and ThrowCPE.
|
private |
Definition at line 161 of file CiffIFD.cpp.
References assert(), rawspeed::CiffTagsWeCareAbout, rawspeed::isIn(), and mEntry.
|
private |
Definition at line 152 of file CiffIFD.cpp.
References assert(), and mSubIFD.
Referenced by parseIFDEntry().
|
private |
Definition at line 122 of file CiffIFD.cpp.
References assert(), rawspeed::CiffIFD::Limits::RecursiveSubIFDCount, rawspeed::CiffIFD::Limits::SubIFDCount, subIFDCount, subIFDCountRecursive, and ThrowCPE.
Definition at line 248 of file CiffIFD.cpp.
References assert(), rawspeed::CiffTagsWeCareAbout, rawspeed::isIn(), mEntry, and ThrowCPE.
Definition at line 257 of file CiffIFD.cpp.
References assert(), rawspeed::CiffTagsWeCareAbout, getEntryRecursiveIf(), and rawspeed::isIn().
| const CiffEntry * rawspeed::CiffIFD::getEntryRecursiveIf | ( | CiffTag | tag, |
| const Lambda & | f ) const |
Definition at line 189 of file CiffIFD.cpp.
References assert(), rawspeed::CiffTagsWeCareAbout, rawspeed::isIn(), mEntry, and mSubIFD.
|
private |
References CiffIFD(), and parent.
Referenced by getEntryRecursive(), getEntryRecursiveWhere(), and getEntryRecursiveWhere().
|
nodiscard |
Definition at line 272 of file CiffIFD.cpp.
References assert(), rawspeed::CiffTagsWeCareAbout, getEntryRecursiveIf(), rawspeed::CiffEntry::getString(), rawspeed::isIn(), and rawspeed::CiffEntry::isString().
|
nodiscard |
Definition at line 263 of file CiffIFD.cpp.
References assert(), rawspeed::CiffTagsWeCareAbout, getEntryRecursiveIf(), rawspeed::CiffEntry::getU32(), rawspeed::isIn(), and rawspeed::CiffEntry::isInt().
Definition at line 208 of file CiffIFD.cpp.
References assert(), rawspeed::CiffTagsWeCareAbout, getIFDsWithTagIf(), and rawspeed::isIn().
| std::vector< const CiffIFD * > rawspeed::CiffIFD::getIFDsWithTagIf | ( | CiffTag | tag, |
| const Lambda & | f ) const |
Definition at line 168 of file CiffIFD.cpp.
References assert(), rawspeed::CiffTagsWeCareAbout, rawspeed::isIn(), mEntry, and mSubIFD.
|
private |
Referenced by getIFDsWithTag(), getIFDsWithTagWhere(), and getIFDsWithTagWhere().
|
nodiscard |
Definition at line 223 of file CiffIFD.cpp.
References assert(), rawspeed::CiffTagsWeCareAbout, getIFDsWithTagIf(), rawspeed::CiffEntry::getString(), rawspeed::isIn(), and rawspeed::CiffEntry::isString().
|
nodiscard |
Definition at line 214 of file CiffIFD.cpp.
References assert(), rawspeed::CiffTagsWeCareAbout, getIFDsWithTagIf(), rawspeed::CiffEntry::getU32(), rawspeed::isIn(), and rawspeed::CiffEntry::isInt().
|
nodiscard |
Definition at line 230 of file CiffIFD.cpp.
References assert(), rawspeed::CiffTagsWeCareAbout, rawspeed::isIn(), and mEntry.
|
nodiscard |
Definition at line 236 of file CiffIFD.cpp.
References assert(), rawspeed::CiffTagsWeCareAbout, rawspeed::isIn(), mEntry, and mSubIFD.
|
private |
Definition at line 45 of file CiffIFD.cpp.
References add(), assert(), rawspeed::CiffTagsWeCareAbout, rawspeed::CiffEntry::Create(), rawspeed::CiffEntry::data, rawspeed::ByteStream::getStream(), rawspeed::isIn(), rawspeed::SUB1, rawspeed::SUB2, rawspeed::CiffEntry::tag, and rawspeed::CiffEntry::type.
Referenced by CiffIFD().
|
private |
Definition at line 136 of file CiffIFD.cpp.
References CiffIFD(), assert(), rawspeed::CiffIFD::Limits::Depth, and ThrowCPE.
Referenced by CiffIFD().
|
private |
Definition at line 111 of file CiffIFD.cpp.
References CiffIFD(), and parent.
Referenced by CiffIFD().
Definition at line 46 of file CiffIFD.h.
Referenced by CiffIFD(), add(), getEntry(), getEntryRecursiveIf(), getIFDsWithTagIf(), hasEntry(), and hasEntryRecursive().
|
private |
Definition at line 45 of file CiffIFD.h.
Referenced by CiffIFD(), add(), getEntryRecursiveIf(), getIFDsWithTagIf(), and hasEntryRecursive().
|
private |
Definition at line 43 of file CiffIFD.h.
Referenced by CiffIFD(), getEntryRecursiveIf(), and recursivelyIncrementSubIFDCount().
|
private |
Definition at line 48 of file CiffIFD.h.
Referenced by CiffIFD(), and checkSubIFDs().
|
private |
Definition at line 49 of file CiffIFD.h.
Referenced by CiffIFD(), and checkSubIFDs().