| // 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_ |