7#ifndef CORE_FPDFAPI_PAGE_CPDF_STREAMPARSER_H_
8#define CORE_FPDFAPI_PAGE_CPDF_STREAMPARSER_H_
14#include "core/fxcrt/data_vector.h"
15#include "core/fxcrt/raw_span.h"
16#include "core/fxcrt/retain_ptr.h"
17#include "core/fxcrt/span.h"
18#include "core/fxcrt/string_pool_template.h"
19#include "core/fxcrt/weak_ptr.h"
32 const WeakPtr<ByteStringPool>& pPool);
37 return ByteStringView(m_WordBuffer).First(m_WordSize);
39 uint32_t
GetPos()
const {
return m_Pos; }
40 void SetPos(uint32_t pos) { m_Pos = pos; }
44 uint32_t dwRecursionLevel);
50 friend class cpdf_streamparser_ReadHexString_Test;
51 static constexpr uint32_t kMaxWordLength = 255;
53 void GetNextWord(
bool& bIsNumber);
55 DataVector<uint8_t> ReadHexString();
56 bool PositionIsInBounds()
const;
59 uint32_t m_WordSize = 0;
60 WeakPtr<ByteStringPool> m_pPool;
62 pdfium::raw_span<
const uint8_t> m_pBuf;
64 std::array<uint8_t, kMaxWordLength + 1> m_WordBuffer = {};
fxcrt::ByteString ByteString
CFX_FloatRect(const CFX_FloatRect &that)=default
constexpr CFX_FloatRect()=default
void UpdateRect(const CFX_PointF &point)
void Intersect(const CFX_FloatRect &other_rect)
CFX_FloatRect & operator=(const CFX_FloatRect &that)=default
CFX_Matrix & operator=(const CFX_Matrix &other)=default
CFX_FloatRect TransformRect(const CFX_FloatRect &rect) const
constexpr CFX_Matrix(float a1, float b1, float c1, float d1, float e1, float f1)
void Concat(const CFX_Matrix &right)
std::vector< RetainPtr< CPDF_Object > >::const_iterator const_iterator
static RetainPtr< CPDF_ColorSpace > GetStockCS(Family family)
CPDF_DictionaryLocker(const CPDF_Dictionary *pDictionary)
std::map< ByteString, RetainPtr< CPDF_Object >, std::less<> > DictMap
uint32_t ComponentBits() const
uint32_t ReadFlag() const
bool CanReadCoords() const
void SkipBits(uint32_t nbits)
void AppendRect(float left, float bottom, float right, float top)
void Transform(const CFX_Matrix &matrix)
ShadingType GetShadingType() const
CPDF_StreamContentParser(CPDF_Document *pDoc, RetainPtr< CPDF_Dictionary > pPageResources, RetainPtr< CPDF_Dictionary > pParentResources, const CFX_Matrix *pmtContentToUser, CPDF_PageObjectHolder *pObjHolder, RetainPtr< CPDF_Dictionary > pResources, const CFX_FloatRect &rcBBox, const CPDF_AllStates *pStates, CPDF_Form::RecursionState *parse_state)
CPDF_PageObjectHolder::CTMMap TakeAllCTMs()
uint32_t Parse(pdfium::span< const uint8_t > pData, uint32_t start_offset, uint32_t max_cost, const std::vector< uint32_t > &stream_start_offsets)
~CPDF_StreamContentParser()
static void DestroyGlobals()
static ByteStringView FindValueAbbreviationForTesting(ByteStringView abbr)
RetainPtr< CPDF_Font > FindFont(const ByteString &name)
static ByteStringView FindKeyAbbreviationForTesting(ByteStringView abbr)
static void InitializeGlobals()
void SetPos(uint32_t pos)
ElementType ParseNextElement()
const RetainPtr< CPDF_Object > & GetObject() const
RetainPtr< CPDF_Object > ReadNextObject(bool bAllowNestedArray, bool bInArray, uint32_t dwRecursionLevel)
RetainPtr< CPDF_Stream > ReadInlineStream(CPDF_Document *pDoc, RetainPtr< CPDF_Dictionary > pDict, const CPDF_Object *pCSObj)
CPDF_StreamParser(pdfium::span< const uint8_t > span, const WeakPtr< ByteStringPool > &pPool)
CPDF_StreamParser(pdfium::span< const uint8_t > span)
ByteStringView GetWord() const
bool operator==(const char *ptr) const
bool operator!=(const char *ptr) const
@ kTensorProductPatchMeshShading
@ kLatticeFormGouraudTriangleMeshShading
@ kFreeFormGouraudTriangleMeshShading
bool TextRenderingModeIsStrokeMode(const TextRenderingMode &mode)
CFX_PTemplate< float > CFX_PointF
pdfium::CheckedNumeric< uint32_t > FX_SAFE_UINT32
#define NOTREACHED_NORETURN()
fxcrt::ByteStringView ByteStringView