5#ifndef CORE_FPDFAPI_PARSER_CPDF_OBJECT_WALKER_H_
6#define CORE_FPDFAPI_PARSER_CPDF_OBJECT_WALKER_H_
11#include "core/fxcrt/bytestring.h"
12#include "core/fxcrt/retain_ptr.h"
36 bool is_started_ =
false;
50 static std::unique_ptr<SubobjectIterator> MakeIterator(
56 size_t current_depth_ = 0;
57 std::stack<std::unique_ptr<SubobjectIterator>> stack_;
fxcrt::ByteString ByteString
CPDF_CryptoHandler(Cipher cipher, pdfium::span< const uint8_t > key)
bool DecryptObjectTree(RetainPtr< CPDF_Object > object)
static bool IsSignatureDictionary(const CPDF_Dictionary *dictionary)
DataVector< uint8_t > EncryptContent(uint32_t objnum, uint32_t gennum, pdfium::span< const uint8_t > source) const
RetainPtr< const CPDF_Object > GetDirectObjectFor(const ByteString &key) const
std::map< ByteString, RetainPtr< CPDF_Object >, std::less<> > DictMap
RetainPtr< CPDF_Object > GetNext()
CPDF_NonConstObjectWalker(RetainPtr< CPDF_Object > root)
virtual bool IsFinished() const =0
virtual RetainPtr< const CPDF_Object > IncrementImpl()=0
const CPDF_Object * object() const
virtual ~SubobjectIterator()
SubobjectIterator(RetainPtr< const CPDF_Object > object)
RetainPtr< const CPDF_Object > Increment()
CPDF_ObjectWalker(RetainPtr< const CPDF_Object > root)
size_t current_depth() const
RetainPtr< const CPDF_Object > GetNext()
const CPDF_Object * GetParent() const
void SkipWalkIntoCurrentObject()
const ByteString & dictionary_key() const
void SetString(const ByteString &str) override
ByteString GetString() const override
fxcrt::ByteStringView ByteStringView
CRYPT_aes_context m_Context