Coverage Report

Created: 2025-12-11 06:34

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/logging-log4cxx/src/main/include/log4cxx/spi/appenderattachable.h
Line
Count
Source
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_SPI_APPENDER_ATTACHABLE_H_
19
#define _LOG4CXX_SPI_APPENDER_ATTACHABLE_H_
20
21
#include <log4cxx/logstring.h>
22
#include <log4cxx/helpers/object.h>
23
#include <log4cxx/appender.h>
24
25
namespace LOG4CXX_NS
26
{
27
namespace spi
28
{
29
/**
30
 * This Interface is for attaching Appenders to objects.
31
 */
32
class LOG4CXX_EXPORT AppenderAttachable : public virtual helpers::Object
33
{
34
  public:
35
    // Methods
36
    DECLARE_ABSTRACT_LOG4CXX_OBJECT(AppenderAttachable)
37
38
    /**
39
     * Add an appender.
40
     */
41
    virtual void addAppender(const AppenderPtr newAppender) = 0;
42
43
    /**
44
     * Get all previously added appenders as an AppenderList.
45
     */
46
    virtual AppenderList getAllAppenders() const = 0;
47
48
    /**
49
     * Get an appender by name.
50
     */
51
    virtual AppenderPtr getAppender(const LogString& name) const = 0;
52
53
    /**
54
     * Returns <code>true</code> if the specified appender is in list of
55
     * attached appenders, <code>false</code> otherwise.
56
     */
57
    virtual bool isAttached(const AppenderPtr appender) const = 0;
58
59
    /**
60
     * Remove all previously added appenders.
61
     */
62
    virtual void removeAllAppenders() = 0;
63
64
    /**
65
     * Remove the appender passed as parameter from the list of appenders.
66
     */
67
    virtual void removeAppender(const AppenderPtr appender) = 0;
68
69
    /**
70
     * Remove the appender with the name passed as parameter from the
71
     * list of appenders.
72
     */
73
    virtual void removeAppender(const LogString& name) = 0;
74
75
#if 15 < LOG4CXX_ABI_VERSION
76
    /**
77
     * Replace \c oldAppender  with \c newAppender.
78
     * @return true if oldAppender was replaced with newAppender.
79
     */
80
    virtual bool replaceAppender(const AppenderPtr& oldAppender, const AppenderPtr& newAppender) = 0;
81
82
    /**
83
     * Replace any previously added appenders with \c newList.
84
     */
85
    virtual void replaceAppenders(const AppenderList& newList) = 0;
86
#endif
87
88
    // Dtor
89
8
    virtual ~AppenderAttachable() {}
90
};
91
92
LOG4CXX_PTR_DEF(AppenderAttachable);
93
}
94
}
95
96
#if 15 < LOG4CXX_ABI_VERSION
97
#define LOG4CXX_16_VIRTUAL_SPECIFIER override
98
#else
99
#define LOG4CXX_16_VIRTUAL_SPECIFIER 
100
#endif
101
102
#endif //_LOG4CXX_SPI_APPENDER_ATTACHABLE_H_