| // Copyright 2017 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_FXCRT_XML_CXML_OBJECT_H_ |
| #define CORE_FXCRT_XML_CXML_OBJECT_H_ |
| |
| #include "core/fxcrt/fx_basic.h" |
| |
| class CXML_Content; |
| class CXML_Element; |
| |
| class CXML_Object { |
| public: |
| virtual ~CXML_Object(); |
| |
| virtual CXML_Content* AsContent(); |
| virtual const CXML_Content* AsContent() const; |
| |
| virtual CXML_Element* AsElement(); |
| virtual const CXML_Element* AsElement() const; |
| |
| protected: |
| CXML_Object() {} |
| }; |
| |
| inline CXML_Content* ToContent(CXML_Object* pObj) { |
| return pObj ? pObj->AsContent() : nullptr; |
| } |
| |
| inline const CXML_Content* ToContent(const CXML_Object* pObj) { |
| return pObj ? pObj->AsContent() : nullptr; |
| } |
| |
| inline CXML_Element* ToElement(CXML_Object* pObj) { |
| return pObj ? pObj->AsElement() : nullptr; |
| } |
| |
| inline const CXML_Element* ToElement(const CXML_Object* pObj) { |
| return pObj ? pObj->AsElement() : nullptr; |
| } |
| |
| #endif // CORE_FXCRT_XML_CXML_OBJECT_H_ |