Index: core/include/fpdfapi/fpdf_serial.h |
diff --git a/core/include/fpdfapi/fpdf_serial.h b/core/include/fpdfapi/fpdf_serial.h |
index 4a325341cb73ccd7b7c04ec9f1cd84c1a2992f42..007135226d765e2d00e790da0b5c1a18e32556f6 100644 |
--- a/core/include/fpdfapi/fpdf_serial.h |
+++ b/core/include/fpdfapi/fpdf_serial.h |
@@ -13,6 +13,101 @@ |
class CPDF_ObjectStream; |
class CPDF_XRefStream; |
CFX_ByteTextBuf& operator<<(CFX_ByteTextBuf& buf, const CPDF_Object* pObj); |
+#ifdef PDF_ENABLE_XFA |
+class CPDF_ObjArchiveSaver : public CFX_ArchiveSaver { |
+ public: |
+ friend CPDF_ObjArchiveSaver& operator<<(CPDF_ObjArchiveSaver& ar, |
+ const CPDF_Object* pObj); |
+ |
+ protected: |
+ CFX_MapPtrToPtr m_ObjectMap; |
+}; |
+class CPDF_ObjArchiveLoader : public CFX_ArchiveLoader { |
+ public: |
+ CPDF_ObjArchiveLoader(const uint8_t* pData, FX_DWORD dwSize) |
+ : CFX_ArchiveLoader(pData, dwSize), m_IndirectObjects(NULL) {} |
+ |
+ friend CPDF_ObjArchiveLoader& operator>>(CPDF_ObjArchiveLoader& ar, |
+ CPDF_Object*& pObj); |
+ |
+ protected: |
+ CPDF_IndirectObjects m_IndirectObjects; |
+}; |
+class CPDF_PageArchiveSaver : public CPDF_ObjArchiveSaver { |
+ public: |
+ CPDF_PageArchiveSaver(CPDF_PageObjects* pPageObjs); |
+ |
+ friend CPDF_PageArchiveSaver& operator<<(CPDF_PageArchiveSaver& ar, |
+ CPDF_PageObject* pObj); |
+ |
+ friend CPDF_PageArchiveSaver& operator<<(CPDF_PageArchiveSaver& ar, |
+ CPDF_ClipPath clip_path); |
+ |
+ friend CPDF_PageArchiveSaver& operator<<(CPDF_PageArchiveSaver& ar, |
+ CPDF_GraphState graph_state); |
+ |
+ friend CPDF_PageArchiveSaver& operator<<(CPDF_PageArchiveSaver& ar, |
+ CPDF_TextState text_state); |
+ |
+ friend CPDF_PageArchiveSaver& operator<<(CPDF_PageArchiveSaver& ar, |
+ CPDF_ColorState color_state); |
+ |
+ friend CPDF_PageArchiveSaver& operator<<(CPDF_PageArchiveSaver& ar, |
+ CPDF_GeneralState general_state); |
+ |
+ protected: |
+ CPDF_ClipPath m_LastClipPath; |
+ |
+ CPDF_GraphState m_LastGraphState; |
+ |
+ CPDF_ColorState m_LastColorState; |
+ |
+ CPDF_TextState m_LastTextState; |
+ |
+ CPDF_GeneralState m_LastGeneralState; |
+}; |
+class CPDF_PageArchiveLoader : public CPDF_ObjArchiveLoader { |
+ public: |
+ CPDF_PageArchiveLoader(CPDF_PageObjects* pPageObjs, |
+ const uint8_t* pData, |
+ FX_DWORD dwSize); |
+ |
+ friend CPDF_PageArchiveLoader& operator>>(CPDF_PageArchiveLoader& ar, |
+ CPDF_PageObject*& pObj); |
+ |
+ friend CPDF_PageArchiveLoader& operator>>(CPDF_PageArchiveLoader& ar, |
+ CPDF_ClipPath& clip_path); |
+ |
+ friend CPDF_PageArchiveLoader& operator>>(CPDF_PageArchiveLoader& ar, |
+ CPDF_GraphState& graph_state); |
+ |
+ friend CPDF_PageArchiveLoader& operator>>(CPDF_PageArchiveLoader& ar, |
+ CPDF_TextState& text_state); |
+ |
+ friend CPDF_PageArchiveLoader& operator>>(CPDF_PageArchiveLoader& ar, |
+ CPDF_ColorState& color_state); |
+ |
+ friend CPDF_PageArchiveLoader& operator>>(CPDF_PageArchiveLoader& ar, |
+ CPDF_GeneralState& general_state); |
+ |
+ protected: |
+ void PostProcColor(CPDF_Color& color); |
+ |
+ CPDF_Object* AddResource(CPDF_Object* pSrcObj, const FX_CHAR* type); |
+ |
+ CPDF_ClipPath m_LastClipPath; |
+ |
+ CPDF_GraphState m_LastGraphState; |
+ |
+ CPDF_ColorState m_LastColorState; |
+ |
+ CPDF_TextState m_LastTextState; |
+ |
+ CPDF_GeneralState m_LastGeneralState; |
+ |
+ CFX_MapPtrToPtr m_ObjectMap; |
+}; |
+#endif |
#define FPDFCREATE_INCREMENTAL 1 |
#define FPDFCREATE_NO_ORIGINAL 2 |
#define FPDFCREATE_PROGRESSIVE 4 |