/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 |