diff options
author | dsinclair <dsinclair@chromium.org> | 2016-09-29 12:01:30 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-29 12:01:30 -0700 |
commit | c6c425af1156587fd9b770e5d40bc087df0c63d8 (patch) | |
tree | b73f313c39cd2b1a275a0f9e1ad7206baf5f95d1 /core/fpdfapi/fpdf_parser/include/cpdf_object.h | |
parent | 8a752ab21daa2dcd0314ab5e3908f8d6e7bba2b7 (diff) | |
download | pdfium-c6c425af1156587fd9b770e5d40bc087df0c63d8.tar.xz |
Move core/fpdfapi/fpdf_parser/include to core/fpdfapi/fpdf_parser
BUG=pdfium:611
Review-Url: https://codereview.chromium.org/2383543002
Diffstat (limited to 'core/fpdfapi/fpdf_parser/include/cpdf_object.h')
-rw-r--r-- | core/fpdfapi/fpdf_parser/include/cpdf_object.h | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/core/fpdfapi/fpdf_parser/include/cpdf_object.h b/core/fpdfapi/fpdf_parser/include/cpdf_object.h deleted file mode 100644 index de14503bbb..0000000000 --- a/core/fpdfapi/fpdf_parser/include/cpdf_object.h +++ /dev/null @@ -1,183 +0,0 @@ -// Copyright 2016 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef CORE_FPDFAPI_FPDF_PARSER_INCLUDE_CPDF_OBJECT_H_ -#define CORE_FPDFAPI_FPDF_PARSER_INCLUDE_CPDF_OBJECT_H_ - -#include <memory> -#include <set> - -#include "core/fxcrt/include/fx_string.h" -#include "core/fxcrt/include/fx_system.h" - -class CPDF_Array; -class CPDF_Boolean; -class CPDF_Dictionary; -class CPDF_Name; -class CPDF_Null; -class CPDF_Number; -class CPDF_Reference; -class CPDF_Stream; -class CPDF_String; - -class CPDF_Object { - public: - static const uint32_t kInvalidObjNum = static_cast<uint32_t>(-1); - enum Type { - BOOLEAN = 1, - NUMBER, - STRING, - NAME, - ARRAY, - DICTIONARY, - STREAM, - NULLOBJ, - REFERENCE - }; - - virtual Type GetType() const = 0; - uint32_t GetObjNum() const { return m_ObjNum; } - uint32_t GetGenNum() const { return m_GenNum; } - - // Create a deep copy of the object. - virtual CPDF_Object* Clone() const = 0; - // Create a deep copy of the object except any reference object be - // copied to the object it points to directly. - virtual CPDF_Object* CloneDirectObject() const; - virtual CPDF_Object* GetDirect() const; - - void Release(); - - virtual CFX_ByteString GetString() const; - virtual CFX_WideString GetUnicodeText() const; - virtual FX_FLOAT GetNumber() const; - virtual int GetInteger() const; - virtual CPDF_Dictionary* GetDict() const; - - virtual void SetString(const CFX_ByteString& str); - - virtual bool IsArray() const; - virtual bool IsBoolean() const; - virtual bool IsDictionary() const; - virtual bool IsName() const; - virtual bool IsNumber() const; - virtual bool IsReference() const; - virtual bool IsStream() const; - virtual bool IsString() const; - - virtual CPDF_Array* AsArray(); - virtual const CPDF_Array* AsArray() const; - virtual CPDF_Boolean* AsBoolean(); - virtual const CPDF_Boolean* AsBoolean() const; - virtual CPDF_Dictionary* AsDictionary(); - virtual const CPDF_Dictionary* AsDictionary() const; - virtual CPDF_Name* AsName(); - virtual const CPDF_Name* AsName() const; - virtual CPDF_Number* AsNumber(); - virtual const CPDF_Number* AsNumber() const; - virtual CPDF_Reference* AsReference(); - virtual const CPDF_Reference* AsReference() const; - virtual CPDF_Stream* AsStream(); - virtual const CPDF_Stream* AsStream() const; - virtual CPDF_String* AsString(); - virtual const CPDF_String* AsString() const; - - protected: - friend class CPDF_Array; - friend class CPDF_Dictionary; - friend class CPDF_Document; - friend class CPDF_IndirectObjectHolder; - friend class CPDF_Parser; - friend class CPDF_Reference; - friend class CPDF_Stream; - friend struct std::default_delete<CPDF_Object>; - - CPDF_Object() : m_ObjNum(0), m_GenNum(0) {} - virtual ~CPDF_Object(); - - CPDF_Object* CloneObjectNonCyclic(bool bDirect) const; - - // Create a deep copy of the object with the option to either - // copy a reference object or directly copy the object it refers to - // when |bDirect| is true. - // Also check cyclic reference against |pVisited|, no copy if it is found. - // Complex objects should implement their own CloneNonCyclic() - // function to properly check for possible loop. - virtual CPDF_Object* CloneNonCyclic( - bool bDirect, - std::set<const CPDF_Object*>* pVisited) const; - - uint32_t m_ObjNum; - uint32_t m_GenNum; - - private: - CPDF_Object(const CPDF_Object& src) {} -}; - -inline CPDF_Boolean* ToBoolean(CPDF_Object* obj) { - return obj ? obj->AsBoolean() : nullptr; -} - -inline const CPDF_Boolean* ToBoolean(const CPDF_Object* obj) { - return obj ? obj->AsBoolean() : nullptr; -} - -inline CPDF_Number* ToNumber(CPDF_Object* obj) { - return obj ? obj->AsNumber() : nullptr; -} - -inline const CPDF_Number* ToNumber(const CPDF_Object* obj) { - return obj ? obj->AsNumber() : nullptr; -} - -inline CPDF_String* ToString(CPDF_Object* obj) { - return obj ? obj->AsString() : nullptr; -} - -inline const CPDF_String* ToString(const CPDF_Object* obj) { - return obj ? obj->AsString() : nullptr; -} - -inline CPDF_Name* ToName(CPDF_Object* obj) { - return obj ? obj->AsName() : nullptr; -} - -inline const CPDF_Name* ToName(const CPDF_Object* obj) { - return obj ? obj->AsName() : nullptr; -} - -inline CPDF_Array* ToArray(CPDF_Object* obj) { - return obj ? obj->AsArray() : nullptr; -} - -inline const CPDF_Array* ToArray(const CPDF_Object* obj) { - return obj ? obj->AsArray() : nullptr; -} - -inline CPDF_Dictionary* ToDictionary(CPDF_Object* obj) { - return obj ? obj->AsDictionary() : nullptr; -} - -inline const CPDF_Dictionary* ToDictionary(const CPDF_Object* obj) { - return obj ? obj->AsDictionary() : nullptr; -} -inline CPDF_Reference* ToReference(CPDF_Object* obj) { - return obj ? obj->AsReference() : nullptr; -} - -inline const CPDF_Reference* ToReference(const CPDF_Object* obj) { - return obj ? obj->AsReference() : nullptr; -} - -inline CPDF_Stream* ToStream(CPDF_Object* obj) { - return obj ? obj->AsStream() : nullptr; -} - -inline const CPDF_Stream* ToStream(const CPDF_Object* obj) { - return obj ? obj->AsStream() : nullptr; -} - -#endif // CORE_FPDFAPI_FPDF_PARSER_INCLUDE_CPDF_OBJECT_H_ |