Coverage Report

Created: 2026-10-28 06:34

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libwpd/src/lib/WP6VariableLengthGroup.h
Line
Count
Source
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2
/* libwpd
3
 * Version: MPL 2.0 / LGPLv2.1+
4
 *
5
 * This Source Code Form is subject to the terms of the Mozilla Public
6
 * License, v. 2.0. If a copy of the MPL was not distributed with this
7
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
 *
9
 * Major Contributor(s):
10
 * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
11
 * Copyright (C) 2002 Marc Maurer (uwog@uwog.net)
12
 * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
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://libwpd.sourceforge.net
22
 */
23
24
/* "This product is not manufactured, approved, or supported by
25
 * Corel Corporation or Corel Corporation Limited."
26
 */
27
28
#ifndef WP6VARIABLELENGTHGROUP_H
29
#define WP6VARIABLELENGTHGROUP_H
30
31
#include <vector>
32
33
#include "WP6Part.h"
34
35
class WP6VariableLengthGroup_SubGroup
36
{
37
public:
38
288k
  virtual ~WP6VariableLengthGroup_SubGroup() {}
39
  virtual void parse(WP6Listener *listener, const unsigned char numPrefixIDs, unsigned short const *prefixIDs) const = 0;
40
};
41
42
class WP6VariableLengthGroup : public WP6Part
43
{
44
public:
45
  WP6VariableLengthGroup(); // WP6VariableLengthGroup should _never_ be constructed, only its inherited classes
46
  ~WP6VariableLengthGroup() override;
47
48
  static WP6VariableLengthGroup *constructVariableLengthGroup(librevenge::RVNGInputStream *input, WPXEncryption *encryption, const unsigned char groupID);
49
50
  static bool isGroupConsistent(librevenge::RVNGInputStream *input, WPXEncryption *encryption, const unsigned char groupID);
51
52
protected:
53
  void _read(librevenge::RVNGInputStream *input, WPXEncryption *encryption);
54
1.52k
  virtual void _readContents(librevenge::RVNGInputStream * /* input */, WPXEncryption * /* encryption */) {} // we don't always need more information than that provided generically
55
56
  unsigned char getSubGroup() const
57
1.08M
  {
58
1.08M
    return m_subGroup;
59
1.08M
  }
60
  unsigned short getSize() const
61
13.7k
  {
62
13.7k
    return m_size;
63
13.7k
  }
64
  unsigned char getFlags() const
65
90.6k
  {
66
90.6k
    return m_flags;
67
90.6k
  }
68
  unsigned char getNumPrefixIDs() const
69
481k
  {
70
481k
    return m_prefixIDs.size();;
71
0
  }
72
  const unsigned short *getPrefixIDs() const
73
362k
  {
74
362k
    return m_prefixIDs.data();
75
362k
  }
76
  unsigned short getSizeNonDeletable() const
77
145k
  {
78
145k
    return m_sizeNonDeletable;
79
145k
  }
80
  unsigned short getSizeDeletable() const
81
19.5k
  {
82
19.5k
    return m_sizeDeletable;
83
19.5k
  }
84
85
private:
86
  WP6VariableLengthGroup(const WP6VariableLengthGroup &);
87
  WP6VariableLengthGroup &operator=(const WP6VariableLengthGroup &);
88
  unsigned char m_subGroup;
89
  unsigned short m_size;
90
  unsigned char m_flags;
91
  std::vector<unsigned short> m_prefixIDs;
92
  unsigned short m_sizeNonDeletable;
93
  unsigned short m_sizeDeletable;
94
};
95
96
#endif /* WP6VARIABLELENGTHGROUP_H */
97
/* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */