Rename CPDF_Struct{Element,Tree} to IPDF_

After all, what good is a naming convention unless you're going
to blindly adhere to it?

Review-Url: https://codereview.chromium.org/1981403002
diff --git a/core/fpdfdoc/doc_tagged.cpp b/core/fpdfdoc/doc_tagged.cpp
index 2eca698..cfa9e46 100644
--- a/core/fpdfdoc/doc_tagged.cpp
+++ b/core/fpdfdoc/doc_tagged.cpp
@@ -15,43 +15,59 @@
 #include "core/fpdfdoc/include/fpdf_tagged.h"
 #include "core/fpdfdoc/tagged_int.h"
 
+namespace {
+
 const int nMaxRecursion = 32;
-static FX_BOOL IsTagged(const CPDF_Document* pDoc) {
+
+bool IsTagged(const CPDF_Document* pDoc) {
   CPDF_Dictionary* pCatalog = pDoc->GetRoot();
   CPDF_Dictionary* pMarkInfo = pCatalog->GetDictBy("MarkInfo");
   return pMarkInfo && pMarkInfo->GetIntegerBy("Marked");
 }
-CPDF_StructTree* CPDF_StructTree::LoadPage(const CPDF_Document* pDoc,
+
+}  // namespace
+
+// static
+IPDF_StructTree* IPDF_StructTree::LoadPage(const CPDF_Document* pDoc,
                                            const CPDF_Dictionary* pPageDict) {
-  if (!IsTagged(pDoc)) {
-    return NULL;
-  }
+  if (!IsTagged(pDoc))
+    return nullptr;
+
   CPDF_StructTreeImpl* pTree = new CPDF_StructTreeImpl(pDoc);
   pTree->LoadPageTree(pPageDict);
   return pTree;
 }
-CPDF_StructTree* CPDF_StructTree::LoadDoc(const CPDF_Document* pDoc) {
-  if (!IsTagged(pDoc)) {
-    return NULL;
-  }
+
+// static.
+IPDF_StructTree* IPDF_StructTree::LoadDoc(const CPDF_Document* pDoc) {
+  if (!IsTagged(pDoc))
+    return nullptr;
+
   CPDF_StructTreeImpl* pTree = new CPDF_StructTreeImpl(pDoc);
   pTree->LoadDocTree();
   return pTree;
 }
-CPDF_StructTreeImpl::CPDF_StructTreeImpl(const CPDF_Document* pDoc) {
-  CPDF_Dictionary* pCatalog = pDoc->GetRoot();
-  m_pTreeRoot = pCatalog->GetDictBy("StructTreeRoot");
-  if (!m_pTreeRoot) {
-    return;
-  }
-  m_pRoleMap = m_pTreeRoot->GetDictBy("RoleMap");
-}
+
+CPDF_StructTreeImpl::CPDF_StructTreeImpl(const CPDF_Document* pDoc)
+    : m_pTreeRoot(pDoc->GetRoot()->GetDictBy("StructTreeRoot")),
+      m_pRoleMap(m_pTreeRoot ? m_pTreeRoot->GetDictBy("RoleMap") : nullptr),
+      m_pPage(nullptr) {}
+
 CPDF_StructTreeImpl::~CPDF_StructTreeImpl() {
-  for (int i = 0; i < m_Kids.GetSize(); i++)
-    if (m_Kids[i]) {
+  for (int i = 0; i < m_Kids.GetSize(); i++) {
+    if (m_Kids[i])
       m_Kids[i]->Release();
-    }
+  }
 }
+
+int CPDF_StructTreeImpl::CountTopElements() const {
+  return m_Kids.GetSize();
+}
+
+IPDF_StructElement* CPDF_StructTreeImpl::GetTopElement(int i) const {
+  return m_Kids.GetAt(i);
+}
+
 void CPDF_StructTreeImpl::LoadDocTree() {
   m_pPage = nullptr;
   if (!m_pTreeRoot)
@@ -197,22 +213,23 @@
   }
   return TRUE;
 }
+
 CPDF_StructElementImpl::CPDF_StructElementImpl(CPDF_StructTreeImpl* pTree,
                                                CPDF_StructElementImpl* pParent,
                                                CPDF_Dictionary* pDict)
-    : m_RefCount(0) {
-  m_pTree = pTree;
-  m_pDict = pDict;
-  m_Type = pDict->GetStringBy("S");
+    : m_RefCount(0),
+      m_pTree(pTree),
+      m_pParent(pParent),
+      m_pDict(pDict),
+      m_Type(pDict->GetStringBy("S")) {
   if (pTree->m_pRoleMap) {
     CFX_ByteString mapped = pTree->m_pRoleMap->GetStringBy(m_Type);
-    if (!mapped.IsEmpty()) {
+    if (!mapped.IsEmpty())
       m_Type = mapped;
-    }
   }
-  m_pParent = pParent;
   LoadKids(pDict);
 }
+
 CPDF_StructElementImpl::~CPDF_StructElementImpl() {
   for (int i = 0; i < m_Kids.GetSize(); i++) {
     if (m_Kids[i].m_Type == CPDF_StructKid::Element &&
diff --git a/core/fpdfdoc/include/fpdf_tagged.h b/core/fpdfdoc/include/fpdf_tagged.h
index 807f178..43d69e8 100644
--- a/core/fpdfdoc/include/fpdf_tagged.h
+++ b/core/fpdfdoc/include/fpdf_tagged.h
@@ -9,66 +9,55 @@
 
 #include "core/fxge/include/fx_dib.h"
 
+class CPDF_Dictionary;
 class CPDF_Document;
-class CPDF_StructElement;
-class CPDF_StructTree;
-struct CPDF_StructKid;
+class IPDF_StructElement;
 
-class CPDF_StructTree {
+class IPDF_StructTree {
  public:
-  static CPDF_StructTree* LoadDoc(const CPDF_Document* pDoc);
-
-  static CPDF_StructTree* LoadPage(const CPDF_Document* pDoc,
+  static IPDF_StructTree* LoadDoc(const CPDF_Document* pDoc);
+  static IPDF_StructTree* LoadPage(const CPDF_Document* pDoc,
                                    const CPDF_Dictionary* pPageDict);
 
-  virtual ~CPDF_StructTree() {}
+  virtual ~IPDF_StructTree() {}
 
   virtual int CountTopElements() const = 0;
-
-  virtual CPDF_StructElement* GetTopElement(int i) const = 0;
+  virtual IPDF_StructElement* GetTopElement(int i) const = 0;
 };
+
 struct CPDF_StructKid {
   enum { Invalid, Element, PageContent, StreamContent, Object } m_Type;
 
   union {
     struct {
-      CPDF_StructElement* m_pElement;
-
+      IPDF_StructElement* m_pElement;
       CPDF_Dictionary* m_pDict;
     } m_Element;
     struct {
       uint32_t m_PageObjNum;
-
       uint32_t m_ContentId;
     } m_PageContent;
     struct {
       uint32_t m_PageObjNum;
-
       uint32_t m_ContentId;
-
       uint32_t m_RefObjNum;
     } m_StreamContent;
     struct {
       uint32_t m_PageObjNum;
-
       uint32_t m_RefObjNum;
     } m_Object;
   };
 };
-class CPDF_StructElement {
+
+class IPDF_StructElement {
  public:
-  virtual ~CPDF_StructElement() {}
+  virtual ~IPDF_StructElement() {}
 
-  virtual CPDF_StructTree* GetTree() const = 0;
-
+  virtual IPDF_StructTree* GetTree() const = 0;
   virtual const CFX_ByteString& GetType() const = 0;
-
-  virtual CPDF_StructElement* GetParent() const = 0;
-
+  virtual IPDF_StructElement* GetParent() const = 0;
   virtual CPDF_Dictionary* GetDict() const = 0;
-
   virtual int CountKids() const = 0;
-
   virtual const CPDF_StructKid& GetKid(int index) const = 0;
 
   virtual CPDF_Object* GetAttr(const CFX_ByteStringC& owner,
diff --git a/core/fpdfdoc/tagged_int.h b/core/fpdfdoc/tagged_int.h
index f6e845a..7b9a32f 100644
--- a/core/fpdfdoc/tagged_int.h
+++ b/core/fpdfdoc/tagged_int.h
@@ -13,16 +13,14 @@
 
 class CPDF_StructElementImpl;
 
-class CPDF_StructTreeImpl : public CPDF_StructTree {
+class CPDF_StructTreeImpl final : public IPDF_StructTree {
  public:
   explicit CPDF_StructTreeImpl(const CPDF_Document* pDoc);
   ~CPDF_StructTreeImpl() override;
 
-  // CPDF_StructTree
-  int CountTopElements() const override { return m_Kids.GetSize(); }
-  CPDF_StructElement* GetTopElement(int i) const override {
-    return (CPDF_StructElement*)m_Kids.GetAt(i);
-  }
+  // IPDF_StructTree:
+  int CountTopElements() const override;
+  IPDF_StructElement* GetTopElement(int i) const override;
 
   void LoadDocTree();
   void LoadPageTree(const CPDF_Dictionary* pPageDict);
@@ -34,23 +32,23 @@
                           CPDF_StructElementImpl* pElement);
 
  protected:
-  const CPDF_Dictionary* m_pTreeRoot;
-  const CPDF_Dictionary* m_pRoleMap;
+  const CPDF_Dictionary* const m_pTreeRoot;
+  const CPDF_Dictionary* const m_pRoleMap;
   const CPDF_Dictionary* m_pPage;
   CFX_ArrayTemplate<CPDF_StructElementImpl*> m_Kids;
   friend class CPDF_StructElementImpl;
 };
 
-class CPDF_StructElementImpl final : public CPDF_StructElement {
+class CPDF_StructElementImpl final : public IPDF_StructElement {
  public:
   CPDF_StructElementImpl(CPDF_StructTreeImpl* pTree,
                          CPDF_StructElementImpl* pParent,
                          CPDF_Dictionary* pDict);
 
-  // CPDF_StructTreeImpl
-  CPDF_StructTree* GetTree() const override { return m_pTree; }
+  // IPDF_StructElement:
+  IPDF_StructTree* GetTree() const override { return m_pTree; }
   const CFX_ByteString& GetType() const override { return m_Type; }
-  CPDF_StructElement* GetParent() const override { return m_pParent; }
+  IPDF_StructElement* GetParent() const override { return m_pParent; }
   CPDF_Dictionary* GetDict() const override { return m_pDict; }
   int CountKids() const override { return m_Kids.GetSize(); }
   const CPDF_StructKid& GetKid(int index) const override {
@@ -93,12 +91,12 @@
  protected:
   ~CPDF_StructElementImpl() override;
 
-  CPDF_StructTreeImpl* m_pTree;
-  CFX_ByteString m_Type;
-  CPDF_StructElementImpl* m_pParent;
-  CPDF_Dictionary* m_pDict;
-  CFX_ArrayTemplate<CPDF_StructKid> m_Kids;
   int m_RefCount;
+  CPDF_StructTreeImpl* const m_pTree;
+  CPDF_StructElementImpl* const m_pParent;
+  CPDF_Dictionary* const m_pDict;
+  CFX_ByteString m_Type;
+  CFX_ArrayTemplate<CPDF_StructKid> m_Kids;
 
   friend class CPDF_StructTreeImpl;
 };