1 // Copyright 2016 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #ifndef CORE_FPDFDOC_CPDF_NAMETREE_H_ 8 #define CORE_FPDFDOC_CPDF_NAMETREE_H_ 9 10 #include "core/fxcrt/fx_string.h" 11 12 class CPDF_Array; 13 class CPDF_Dictionary; 14 class CPDF_Document; 15 class CPDF_Object; 16 17 class CPDF_NameTree { 18 public: CPDF_NameTree(CPDF_Dictionary * pRoot)19 explicit CPDF_NameTree(CPDF_Dictionary* pRoot) : m_pRoot(pRoot) {} 20 CPDF_NameTree(CPDF_Document* pDoc, const CFX_ByteString& category); 21 22 CPDF_Object* LookupValue(int nIndex, CFX_ByteString& csName) const; 23 CPDF_Object* LookupValue(const CFX_ByteString& csName) const; 24 CPDF_Array* LookupNamedDest(CPDF_Document* pDoc, const CFX_ByteString& sName); 25 26 int GetIndex(const CFX_ByteString& csName) const; 27 size_t GetCount() const; GetRoot()28 CPDF_Dictionary* GetRoot() const { return m_pRoot; } 29 30 private: 31 CPDF_Dictionary* m_pRoot; 32 }; 33 34 #endif // CORE_FPDFDOC_CPDF_NAMETREE_H_ 35