STOFFDocument.hxx Source File documentation

STOFFDocument.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; c-default-style: "k&r"; indent-tabs-mode: nil; tab-width: 2; c-basic-offset: 2 -*- */
2
3 /* libstaroffice
4 * Version: MPL 2.0 / LGPLv2.1+
5 *
6 * This Source Code Form is subject to the terms of the Mozilla Public
7 * License, v. 2.0. If a copy of the MPL was not distributed with this
8 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 *
10 * Major Contributor(s):
11 * Copyright (C) 2003-2005 William Lachance (william.lachance@sympatico.ca)
12 * Copyright (C) 2003 Marc Maurer (uwog@uwog.net)
13 *
14 * For minor contributions see the git repository.
15 *
16 * Alternatively, the contents of this file may be used under the terms
17 * of the GNU Lesser General Public License Version 2.1 or later
18 * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
19 * applicable instead of those above.
20 *
21 * For further information visit http://libstoff.sourceforge.net
22 */
23
24
25 #ifndef STOFFDOCUMENT_HXX
26 #define STOFFDOCUMENT_HXX
27
28 #ifdef _WINDLL
29 #ifdef BUILD_STOFF
30 #define STOFFLIB __declspec(dllexport)
31 #else
32 #define STOFFLIB __declspec(dllimport)
33 #endif
34 #else // !DLL_EXPORT
35 #ifdef LIBSTAROFFICE_VISIBILITY
36 #define STOFFLIB __attribute__((visibility("default")))
37 #else
38 #define STOFFLIB
39 #endif
40 #endif
41
42 namespace librevenge
43 {
44 class RVNGBinaryData;
45 class RVNGDrawingInterface;
46 class RVNGPresentationInterface;
47 class RVNGSpreadsheetInterface;
48 class RVNGTextInterface;
49 class RVNGInputStream;
50 }
51
55 class STOFFDocument
56 {
57 public:
59 enum Confidence {
60 STOFF_C_NONE=0,
61 STOFF_C_UNSUPPORTED_ENCRYPTION ,
62 STOFF_C_SUPPORTED_ENCRYPTION ,
63 STOFF_C_EXCELLENT
64 };
66 enum Kind {
67 STOFF_K_UNKNOWN=0 ,
68 STOFF_K_BITMAP ,
69 STOFF_K_CHART ,
70 STOFF_K_DATABASE ,
71 STOFF_K_DRAW ,
72 STOFF_K_MATH ,
73 STOFF_K_PRESENTATION ,
74 STOFF_K_SPREADSHEET ,
75 STOFF_K_TEXT ,
76 STOFF_K_GRAPHIC
77 };
79 enum Result {
80 STOFF_R_OK=0 ,
81 STOFF_R_FILE_ACCESS_ERROR ,
82 STOFF_R_OLE_ERROR ,
83 STOFF_R_PARSE_ERROR ,
84 STOFF_R_PASSWORD_MISSMATCH_ERROR ,
85 STOFF_R_UNKNOWN_ERROR
86 };
87
93 static STOFFLIB Confidence isFileFormatSupported(librevenge::RVNGInputStream *input, Kind &kind);
94
95 // ------------------------------------------------------------
96 // the different main parsers
97 // ------------------------------------------------------------
98
107 static STOFFLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *documentInterface, char const *password=nullptr);
108
117 static STOFFLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *documentInterface, char const *password=nullptr);
118
127 static STOFFLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGPresentationInterface *documentInterface, char const *password=nullptr);
128
137 static STOFFLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGSpreadsheetInterface *documentInterface, char const *password=nullptr);
138
139 // ------------------------------------------------------------
140 // decoders of the embedded zones created by libstoff
141 // ------------------------------------------------------------
142
152 static STOFFLIB bool decodeGraphic(librevenge::RVNGBinaryData const &binary, librevenge::RVNGDrawingInterface *documentInterface);
153
163 static STOFFLIB bool decodeSpreadsheet(librevenge::RVNGBinaryData const &binary, librevenge::RVNGSpreadsheetInterface *documentInterface);
164
174 static STOFFLIB bool decodeText(librevenge::RVNGBinaryData const &binary, librevenge::RVNGTextInterface *documentInterface);
175 };
176
177 #endif /* STOFFDOCUMENT_HXX */
178 // vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
librevenge
Definition: STOFFDocument.hxx:42
STOFFDocument
This class provides all the functions an application would need to parse StarOffice documents...
Definition: STOFFDocument.hxx:55
STOFFDocument::Confidence
Confidence
an enum which defines if we have confidence that a file is supported
Definition: STOFFDocument.hxx:59
STOFFDocument::Kind
Kind
an enum to define the kind of document
Definition: STOFFDocument.hxx:66
STOFFDocument::Result
Result
an enum which defines the result of the file parsing
Definition: STOFFDocument.hxx:79
STOFFLIB
#define STOFFLIB
Definition: STOFFDocument.hxx:38