Coverage Report

Created: 2026-04-29 07:28

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libetonyek/src/lib/IWORKXMLContextBase.h
Line
Count
Source
1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/*
3
 * This file is part of the libetonyek project.
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
10
#ifndef IWORKXMLCONTEXTBASE_H_INCLUDED
11
#define IWORKXMLCONTEXTBASE_H_INCLUDED
12
13
#include <boost/enable_shared_from_this.hpp>
14
#include <boost/optional.hpp>
15
16
#include "IWORKXMLContext.h"
17
#include "IWORKTypes_fwd.h"
18
19
namespace libetonyek
20
{
21
22
class IWORKXMLParserState;
23
24
class IWORKCollector;
25
26
template<class Base, class State, class Collector = IWORKCollector>
27
class IWORKXMLContextBase : public Base
28
{
29
public:
30
  explicit IWORKXMLContextBase(State &state)
31
0
    : Base(state)
32
0
    , m_state(state)
33
0
  {
34
0
  }
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::KEY1ParserState, libetonyek::KEYCollector>::IWORKXMLContextBase(libetonyek::KEY1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKDiscardContext, libetonyek::KEY1ParserState, libetonyek::KEYCollector>::IWORKXMLContextBase(libetonyek::KEY1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::IWORKXMLContextBase(libetonyek::KEY2ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKStylesheetBase, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::IWORKXMLContextBase(libetonyek::KEY2ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextEmpty, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::IWORKXMLContextBase(libetonyek::KEY2ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::IWORKXMLParserState, libetonyek::IWORKCollector>::IWORKXMLContextBase(libetonyek::IWORKXMLParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKDiscardContext, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::IWORKXMLContextBase(libetonyek::KEY2ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextEmpty, libetonyek::IWORKXMLParserState, libetonyek::IWORKCollector>::IWORKXMLContextBase(libetonyek::IWORKXMLParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::NUM1ParserState, libetonyek::NUMCollector>::IWORKXMLContextBase(libetonyek::NUM1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKStylesheetBase, libetonyek::NUM1ParserState, libetonyek::NUMCollector>::IWORKXMLContextBase(libetonyek::NUM1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKDiscardContext, libetonyek::NUM1ParserState, libetonyek::NUMCollector>::IWORKXMLContextBase(libetonyek::NUM1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKGroupElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextEmpty, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKStylesheetBase, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKDiscardContext, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKShapeContext, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKTextElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKTextStorageElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKTextBodyElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKPElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKLinkElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKSpanElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKLayoutElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase(libetonyek::PAG1ParserState&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextMixed, libetonyek::IWORKXMLParserState, libetonyek::IWORKCollector>::IWORKXMLContextBase(libetonyek::IWORKXMLParserState&)
35
36
  template<typename T>
37
  IWORKXMLContextBase(State &state, const T &a)
38
0
    : Base(state, a)
39
0
    , m_state(state)
40
0
  {
41
0
  }
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKStylesContext, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::IWORKXMLContextBase<bool>(libetonyek::KEY2ParserState&, bool const&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKStylesContext, libetonyek::NUM1ParserState, libetonyek::NUMCollector>::IWORKXMLContextBase<bool>(libetonyek::NUM1ParserState&, bool const&)
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKStylesContext, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::IWORKXMLContextBase<bool>(libetonyek::PAG1ParserState&, bool const&)
42
43
  State &getState()
44
0
  {
45
0
    return m_state;
46
0
  }
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::KEY1ParserState, libetonyek::KEYCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKStylesContext, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKStylesheetBase, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextEmpty, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::IWORKXMLParserState, libetonyek::IWORKCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKDiscardContext, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::NUM1ParserState, libetonyek::NUMCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKStylesContext, libetonyek::NUM1ParserState, libetonyek::NUMCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKStylesheetBase, libetonyek::NUM1ParserState, libetonyek::NUMCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKDiscardContext, libetonyek::NUM1ParserState, libetonyek::NUMCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKGroupElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKStylesContext, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKStylesheetBase, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKDiscardContext, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKShapeContext, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKTextElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKTextStorageElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKTextBodyElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKPElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKSpanElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextEmpty, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKLayoutElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextMixed, libetonyek::IWORKXMLParserState, libetonyek::IWORKCollector>::getState()
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextEmpty, libetonyek::IWORKXMLParserState, libetonyek::IWORKCollector>::getState()
47
48
protected:
49
  Collector &getCollector() const
50
0
  {
51
0
    return m_state.getCollector();
52
0
  }
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::KEY1ParserState, libetonyek::KEYCollector>::getCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::getCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextEmpty, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::getCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::NUM1ParserState, libetonyek::NUMCollector>::getCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKTextStorageElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKPElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::IWORKXMLParserState, libetonyek::IWORKCollector>::getCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextEmpty, libetonyek::IWORKXMLParserState, libetonyek::IWORKCollector>::getCollector() const
53
54
  int getToken(const char *const value) const
55
0
  {
56
0
    return m_state.getTokenizer().getId(value);
57
0
  }
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::getToken(char const*) const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::NUM1ParserState, libetonyek::NUMCollector>::getToken(char const*) const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::getToken(char const*) const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::IWORKXMLParserState, libetonyek::IWORKCollector>::getToken(char const*) const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextEmpty, libetonyek::IWORKXMLParserState, libetonyek::IWORKCollector>::getToken(char const*) const
58
59
  bool isCollector() const
60
0
  {
61
0
    return m_state.m_enableCollector;
62
0
  }
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::KEY1ParserState, libetonyek::KEYCollector>::isCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::isCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextEmpty, libetonyek::KEY2ParserState, libetonyek::KEYCollector>::isCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::NUM1ParserState, libetonyek::NUMCollector>::isCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::isCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKTextStorageElement, libetonyek::PAG1ParserState, libetonyek::PAGCollector>::isCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextElement, libetonyek::IWORKXMLParserState, libetonyek::IWORKCollector>::isCollector() const
Unexecuted instantiation: libetonyek::IWORKXMLContextBase<libetonyek::IWORKXMLContextEmpty, libetonyek::IWORKXMLParserState, libetonyek::IWORKCollector>::isCollector() const
63
64
protected:
65
  State &m_state;
66
};
67
68
class IWORKXMLContextMinimal : public IWORKXMLContext
69
{
70
protected:
71
  IWORKXMLContextMinimal();
72
73
  void startOfElement() override;
74
  void endOfElement() override;
75
};
76
77
class IWORKXMLContextElement : public IWORKXMLContextMinimal, public boost::enable_shared_from_this<IWORKXMLContextElement>
78
{
79
protected:
80
  explicit IWORKXMLContextElement(IWORKXMLParserState &);
81
82
  void attribute(int name, const char *value) override;
83
  void text(const char *value) override;
84
85
  const boost::optional<ID_t> &getId() const;
86
  void setId(const char *value);
87
88
private:
89
  boost::optional<ID_t> m_id;
90
};
91
92
class IWORKXMLContextText : public IWORKXMLContextMinimal
93
{
94
protected:
95
  explicit IWORKXMLContextText(IWORKXMLParserState &);
96
97
  IWORKXMLContextPtr_t element(int token) override;
98
};
99
100
class IWORKXMLContextMixed : public IWORKXMLContextMinimal, public boost::enable_shared_from_this<IWORKXMLContextMixed>
101
{
102
protected:
103
  explicit IWORKXMLContextMixed(IWORKXMLParserState &);
104
};
105
106
class IWORKXMLContextEmpty : public IWORKXMLContextMinimal
107
{
108
protected:
109
  explicit IWORKXMLContextEmpty(IWORKXMLParserState &);
110
111
  void attribute(int name, const char *value) override;
112
  IWORKXMLContextPtr_t element(int token) override;
113
  void text(const char *value) override;
114
115
  const boost::optional<ID_t> &getId() const;
116
  void setId(const char *value);
117
  const boost::optional<ID_t> &getRef() const;
118
119
private:
120
  boost::optional<ID_t> m_id;
121
  boost::optional<ID_t> m_ref;
122
};
123
124
typedef IWORKXMLContextBase<IWORKXMLContextElement, IWORKXMLParserState> IWORKXMLElementContextBase;
125
typedef IWORKXMLContextBase<IWORKXMLContextText, IWORKXMLParserState> IWORKXMLTextContextBase;
126
typedef IWORKXMLContextBase<IWORKXMLContextMixed, IWORKXMLParserState> IWORKXMLMixedContextBase;
127
typedef IWORKXMLContextBase<IWORKXMLContextEmpty, IWORKXMLParserState> IWORKXMLEmptyContextBase;
128
129
}
130
131
#endif // IWORKXMLCONTEXTBASE_H_INCLUDED
132
133
/* vim:set shiftwidth=2 softtabstop=2 expandtab: */