Coverage Report

Created: 2026-04-29 07:28

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libstaroffice/src/lib/SDXParser.hxx
Line
Count
Source
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+
5
*
6
* The contents of this file are subject to the Mozilla Public License Version
7
* 2.0 (the "License"); you may not use this file except in compliance with
8
* the License or as specified alternatively below. You may obtain a copy of
9
* the License at http://www.mozilla.org/MPL/
10
*
11
* Software distributed under the License is distributed on an "AS IS" basis,
12
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13
* for the specific language governing rights and limitations under the
14
* License.
15
*
16
* Major Contributor(s):
17
* Copyright (C) 2002 William Lachance (wrlach@gmail.com)
18
* Copyright (C) 2002,2004 Marc Maurer (uwog@uwog.net)
19
* Copyright (C) 2004-2006 Fridrich Strba (fridrich.strba@bluewin.ch)
20
* Copyright (C) 2006, 2007 Andrew Ziem
21
* Copyright (C) 2011, 2012 Alonso Laurent (alonso@loria.fr)
22
*
23
*
24
* All Rights Reserved.
25
*
26
* For minor contributions see the git repository.
27
*
28
* Alternatively, the contents of this file may be used under the terms of
29
* the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
30
* in which case the provisions of the LGPLv2+ are applicable
31
* instead of those above.
32
*/
33
34
/*
35
 * Parser to convert sdX StarOffice document
36
 *
37
 */
38
#ifndef SDX_PARSER
39
#  define SDX_PARSER
40
41
#include <vector>
42
43
#include "STOFFDebug.hxx"
44
#include "STOFFEntry.hxx"
45
#include "STOFFInputStream.hxx"
46
47
#include "STOFFParser.hxx"
48
49
namespace SDXParserInternal
50
{
51
struct State;
52
}
53
54
class StarAttributeManager;
55
class StarObject;
56
class StarZone;
57
class STOFFOLEParser;
58
class StarFormatManager;
59
/** \brief the main class to read a StarOffice sdX file
60
 *
61
 *
62
 *
63
 */
64
class SDXParser final : public STOFFTextParser
65
{
66
public:
67
  //! constructor
68
  SDXParser(STOFFInputStreamPtr &input, STOFFHeader *header);
69
  //! destructor
70
  ~SDXParser() final;
71
  //! set the document password
72
  void setDocumentPassword(char const *passwd)
73
0
  {
74
0
    m_password=passwd;
75
0
  }
76
  //! checks if the document header is correct (or not)
77
  bool checkHeader(STOFFHeader *header, bool strict=false) override;
78
79
  // the main parse function
80
  void parse(librevenge::RVNGTextInterface *documentInterface) override;
81
82
protected:
83
  //! inits all internal variables
84
  void init();
85
86
  //! creates the listener which will be associated to the document
87
  void createDocument(librevenge::RVNGTextInterface *documentInterface);
88
89
  //! parses the different OLE, ...
90
  bool createZones();
91
92
  //
93
  // low level
94
  //
95
96
  //
97
  // data
98
  //
99
100
  //! the password
101
  char const *m_password;
102
  //! the ole parser
103
  std::shared_ptr<STOFFOLEParser> m_oleParser;
104
  //! the state
105
  std::shared_ptr<SDXParserInternal::State> m_state;
106
private:
107
  SDXParser(SDXParser const &orig) = delete;
108
  SDXParser &operator=(SDXParser const &orig) = delete;
109
};
110
#endif
111
// vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab: