Coverage Report

Created: 2026-06-13 06:44

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libstaroffice/src/lib/SDAParser.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 sda StarOffice document
36
 *
37
 */
38
#ifndef SDA_PARSER
39
#  define SDA_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 SDAParserInternal
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 sda/sdd file
60
 *
61
 *
62
 *
63
 */
64
class SDAParser final : public STOFFGraphicParser
65
{
66
public:
67
  //! constructor
68
  SDAParser(STOFFInputStreamPtr &input, STOFFHeader *header);
69
  //! destructor
70
  ~SDAParser() 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::RVNGDrawingInterface *documentInterface) final;
81
  // the main presentation parse function
82
  void parse(librevenge::RVNGPresentationInterface *documentInterface) final;
83
84
protected:
85
  //! creates the listener which will be associated to the document
86
  void createDocument(librevenge::RVNGDrawingInterface *documentInterface);
87
  //! creates the listener which will be associated to the document
88
  void createDocument(librevenge::RVNGPresentationInterface *documentInterface);
89
90
  //! parses the different OLE, ...
91
  bool createZones();
92
93
  //
94
  // low level
95
  //
96
97
  //
98
  // data
99
  //
100
101
  //! the password
102
  char const *m_password;
103
  //! the ole parser
104
  std::shared_ptr<STOFFOLEParser> m_oleParser;
105
  //! the state
106
  std::shared_ptr<SDAParserInternal::State> m_state;
107
private:
108
  SDAParser(SDAParser const &orig) = delete;
109
  SDAParser &operator=(SDAParser const &orig) = delete;
110
};
111
#endif
112
// vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab: