OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #ifndef CORE_INCLUDE_FPDFAPI_FPDF_OBJECTS_H_ | 7 #ifndef CORE_INCLUDE_FPDFAPI_FPDF_OBJECTS_H_ |
8 #define CORE_INCLUDE_FPDFAPI_FPDF_OBJECTS_H_ | 8 #define CORE_INCLUDE_FPDFAPI_FPDF_OBJECTS_H_ |
9 | 9 |
10 #include "../fxcrt/fx_coordinates.h" | 10 #include "../fxcrt/fx_coordinates.h" |
11 #include "../fxcrt/fx_system.h" | 11 #include "../fxcrt/fx_system.h" |
12 | 12 |
13 class CPDF_Array; | 13 class CPDF_Array; |
14 class CPDF_Boolean; | 14 class CPDF_Boolean; |
15 class CPDF_CryptoHandler; | 15 class CPDF_CryptoHandler; |
16 class CPDF_Dictionary; | 16 class CPDF_Dictionary; |
17 class CPDF_Document; | 17 class CPDF_Document; |
18 class CPDF_IndirectObjects; | 18 class CPDF_IndirectObjects; |
| 19 class CPDF_Name; |
19 class CPDF_Null; | 20 class CPDF_Null; |
20 class CPDF_Number; | 21 class CPDF_Number; |
21 class CPDF_Parser; | 22 class CPDF_Parser; |
22 class CPDF_Reference; | 23 class CPDF_Reference; |
23 class CPDF_Stream; | 24 class CPDF_Stream; |
24 class CPDF_StreamAcc; | 25 class CPDF_StreamAcc; |
25 class CPDF_StreamFilter; | 26 class CPDF_StreamFilter; |
26 class CPDF_String; | 27 class CPDF_String; |
27 class IFX_FileRead; | 28 class IFX_FileRead; |
28 | 29 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 void SetString(const CFX_ByteString& str); | 76 void SetString(const CFX_ByteString& str); |
76 | 77 |
77 void SetUnicodeText(const FX_WCHAR* pUnicodes, int len = -1); | 78 void SetUnicodeText(const FX_WCHAR* pUnicodes, int len = -1); |
78 | 79 |
79 int GetDirectType() const; | 80 int GetDirectType() const; |
80 | 81 |
81 FX_BOOL IsModified() const { return FALSE; } | 82 FX_BOOL IsModified() const { return FALSE; } |
82 | 83 |
83 bool IsBoolean() const { return m_Type == PDFOBJ_BOOLEAN; } | 84 bool IsBoolean() const { return m_Type == PDFOBJ_BOOLEAN; } |
84 bool IsDictionary() const { return m_Type == PDFOBJ_DICTIONARY; } | 85 bool IsDictionary() const { return m_Type == PDFOBJ_DICTIONARY; } |
| 86 bool IsName() const { return m_Type == PDFOBJ_NAME; } |
85 bool IsNumber() const { return m_Type == PDFOBJ_NUMBER; } | 87 bool IsNumber() const { return m_Type == PDFOBJ_NUMBER; } |
86 bool IsString() const { return m_Type == PDFOBJ_STRING; } | 88 bool IsString() const { return m_Type == PDFOBJ_STRING; } |
87 | 89 |
88 CPDF_Boolean* AsBoolean(); | 90 CPDF_Boolean* AsBoolean(); |
89 const CPDF_Boolean* AsBoolean() const; | 91 const CPDF_Boolean* AsBoolean() const; |
90 | 92 |
91 CPDF_Dictionary* AsDictionary(); | 93 CPDF_Dictionary* AsDictionary(); |
92 const CPDF_Dictionary* AsDictionary() const; | 94 const CPDF_Dictionary* AsDictionary() const; |
93 | 95 |
| 96 CPDF_Name* AsName(); |
| 97 const CPDF_Name* AsName() const; |
| 98 |
94 CPDF_Number* AsNumber(); | 99 CPDF_Number* AsNumber(); |
95 const CPDF_Number* AsNumber() const; | 100 const CPDF_Number* AsNumber() const; |
96 | 101 |
97 CPDF_String* AsString(); | 102 CPDF_String* AsString(); |
98 const CPDF_String* AsString() const; | 103 const CPDF_String* AsString() const; |
99 | 104 |
100 protected: | 105 protected: |
101 CPDF_Object(FX_DWORD type) : m_Type(type), m_ObjNum(0), m_GenNum(0) {} | 106 CPDF_Object(FX_DWORD type) : m_Type(type), m_ObjNum(0), m_GenNum(0) {} |
102 ~CPDF_Object() {} | 107 ~CPDF_Object() {} |
103 void Destroy(); | 108 void Destroy(); |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 CFX_ByteString& GetString() { return m_Name; } | 259 CFX_ByteString& GetString() { return m_Name; } |
255 | 260 |
256 FX_BOOL Identical(CPDF_Name* pOther) const { | 261 FX_BOOL Identical(CPDF_Name* pOther) const { |
257 return m_Name == pOther->m_Name; | 262 return m_Name == pOther->m_Name; |
258 } | 263 } |
259 | 264 |
260 protected: | 265 protected: |
261 CFX_ByteString m_Name; | 266 CFX_ByteString m_Name; |
262 friend class CPDF_Object; | 267 friend class CPDF_Object; |
263 }; | 268 }; |
| 269 inline CPDF_Name* ToName(CPDF_Object* obj) { |
| 270 return obj ? obj->AsName() : nullptr; |
| 271 } |
| 272 inline const CPDF_Name* ToName(const CPDF_Object* obj) { |
| 273 return obj ? obj->AsName() : nullptr; |
| 274 } |
| 275 |
264 class CPDF_Array : public CPDF_Object { | 276 class CPDF_Array : public CPDF_Object { |
265 public: | 277 public: |
266 static CPDF_Array* Create() { return new CPDF_Array(); } | 278 static CPDF_Array* Create() { return new CPDF_Array(); } |
267 | 279 |
268 CPDF_Array() : CPDF_Object(PDFOBJ_ARRAY) {} | 280 CPDF_Array() : CPDF_Object(PDFOBJ_ARRAY) {} |
269 | 281 |
270 FX_DWORD GetCount() const { return m_Objects.GetSize(); } | 282 FX_DWORD GetCount() const { return m_Objects.GetSize(); } |
271 | 283 |
272 CPDF_Object* GetElement(FX_DWORD index) const; | 284 CPDF_Object* GetElement(FX_DWORD index) const; |
273 | 285 |
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
641 | 653 |
642 protected: | 654 protected: |
643 CFX_MapPtrToPtr m_IndirectObjs; | 655 CFX_MapPtrToPtr m_IndirectObjs; |
644 | 656 |
645 CPDF_Parser* m_pParser; | 657 CPDF_Parser* m_pParser; |
646 | 658 |
647 FX_DWORD m_LastObjNum; | 659 FX_DWORD m_LastObjNum; |
648 }; | 660 }; |
649 | 661 |
650 #endif // CORE_INCLUDE_FPDFAPI_FPDF_OBJECTS_H_ | 662 #endif // CORE_INCLUDE_FPDFAPI_FPDF_OBJECTS_H_ |
OLD | NEW |