Coverage Report

Created: 2025-08-29 06:29

/src/logging-log4cxx/src/main/include/log4cxx/helpers/singletonholder.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 * contributor license agreements.  See the NOTICE file distributed with
4
 * this work for additional information regarding copyright ownership.
5
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 * (the "License"); you may not use this file except in compliance with
7
 * the License.  You may obtain a copy of the License at
8
 *
9
 *      http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
18
#ifndef LOG4CXX_SINGLETON_HOLDER_H
19
#define LOG4CXX_SINGLETON_HOLDER_H
20
21
#include <log4cxx/helpers/object.h>
22
23
namespace LOG4CXX_NS
24
{
25
namespace helpers
26
{
27
28
/** Wraps any singleton object so it can be added to APRInitializer
29
 */
30
template <class T>
31
class SingletonHolder : public Object
32
{
33
  using ThisType = SingletonHolder<T>;
34
  T m_data;
35
  struct Unused : public helpers::Class
36
  {
37
0
    LogString getName() const override { return LOG4CXX_STR("SingletonHolder"); }
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::ConfiguratorWatchdog>::Unused::getName() const
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::PropertyWatchdog>::Unused::getName() const
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::helpers::ThreadUtility>::Unused::getName() const
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::xml::XMLWatchdog>::Unused::getName() const
Unexecuted instantiation: configurator.cpp:log4cxx::helpers::SingletonHolder<std::__1::pair<(anonymous namespace)::ConfiguratorTag, log4cxx::helpers::Properties> >::Unused::getName() const
38
  };
39
public: // Object method stubs
40
0
  const helpers::Class& getClass() const override { static Unused notUsed; return notUsed; }
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::ConfiguratorWatchdog>::getClass() const
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::PropertyWatchdog>::getClass() const
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::helpers::ThreadUtility>::getClass() const
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::xml::XMLWatchdog>::getClass() const
Unexecuted instantiation: configurator.cpp:log4cxx::helpers::SingletonHolder<std::__1::pair<(anonymous namespace)::ConfiguratorTag, log4cxx::helpers::Properties> >::getClass() const
41
6.95k
  BEGIN_LOG4CXX_CAST_MAP()
42
0
  LOG4CXX_CAST_ENTRY(ThisType)
43
0
  END_LOG4CXX_CAST_MAP()
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::ConfiguratorWatchdog>::cast(log4cxx::helpers::Class const&) const
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::PropertyWatchdog>::cast(log4cxx::helpers::Class const&) const
log4cxx::helpers::SingletonHolder<log4cxx::helpers::ThreadUtility>::cast(log4cxx::helpers::Class const&) const
Line
Count
Source
41
1.63k
  BEGIN_LOG4CXX_CAST_MAP()
42
0
  LOG4CXX_CAST_ENTRY(ThisType)
43
0
  END_LOG4CXX_CAST_MAP()
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::xml::XMLWatchdog>::cast(log4cxx::helpers::Class const&) const
configurator.cpp:log4cxx::helpers::SingletonHolder<std::__1::pair<(anonymous namespace)::ConfiguratorTag, log4cxx::helpers::Properties> >::cast(log4cxx::helpers::Class const&) const
Line
Count
Source
41
5.32k
  BEGIN_LOG4CXX_CAST_MAP()
42
0
  LOG4CXX_CAST_ENTRY(ThisType)
43
0
  END_LOG4CXX_CAST_MAP()
44
45
public: // ...structors
46
10
  SingletonHolder() {}
log4cxx::helpers::SingletonHolder<log4cxx::helpers::ThreadUtility>::SingletonHolder()
Line
Count
Source
46
4
  SingletonHolder() {}
configurator.cpp:log4cxx::helpers::SingletonHolder<std::__1::pair<(anonymous namespace)::ConfiguratorTag, log4cxx::helpers::Properties> >::SingletonHolder()
Line
Count
Source
46
6
  SingletonHolder() {}
47
  template < typename Arg0, typename ... Args
48
           , typename = typename std::enable_if<!std::is_same<typename std::decay<Arg0>::type, SingletonHolder>::value>::type
49
           >
50
  SingletonHolder(Arg0 arg0, Args&& ... args)
51
0
    : m_data(arg0, std::forward<Args>(args) ... )
52
0
  {}
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::ConfiguratorWatchdog>::SingletonHolder<std::__1::shared_ptr<log4cxx::spi::Configurator>, log4cxx::File const&, void>(std::__1::shared_ptr<log4cxx::spi::Configurator>, log4cxx::File const&)
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::PropertyWatchdog>::SingletonHolder<log4cxx::File, , void>(log4cxx::File)
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::xml::XMLWatchdog>::SingletonHolder<log4cxx::File, , void>(log4cxx::File)
53
  // Prevent copying
54
  SingletonHolder(const SingletonHolder&) = delete;
55
  SingletonHolder(SingletonHolder&&) = delete;
56
57
public: // Accessors
58
6.95k
  T& value() { return m_data; }
log4cxx::helpers::SingletonHolder<log4cxx::helpers::ThreadUtility>::value()
Line
Count
Source
58
1.63k
  T& value() { return m_data; }
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::ConfiguratorWatchdog>::value()
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::PropertyWatchdog>::value()
Unexecuted instantiation: log4cxx::helpers::SingletonHolder<log4cxx::xml::XMLWatchdog>::value()
configurator.cpp:log4cxx::helpers::SingletonHolder<std::__1::pair<(anonymous namespace)::ConfiguratorTag, log4cxx::helpers::Properties> >::value()
Line
Count
Source
58
5.32k
  T& value() { return m_data; }
59
};
60
61
} // namespace helpers
62
} // namespace LOG4CXX_NS
63
64
#endif //LOG4CXX_SINGLETON_HOLDER_H