Coverage Report

Created: 2026-09-04 06:38

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/logging-log4cxx/src/main/include/log4cxx/rolling/triggeringpolicy.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
19
#if !defined(_LOG4CXX_ROLLING_TRIGGER_POLICY_H)
20
#define _LOG4CXX_ROLLING_TRIGGER_POLICY_H
21
22
23
#include <log4cxx/spi/optionhandler.h>
24
#include <log4cxx/helpers/object.h>
25
#include <log4cxx/spi/loggingevent.h>
26
#include <log4cxx/appender.h>
27
28
namespace LOG4CXX_NS
29
{
30
class File;
31
32
namespace rolling
33
{
34
35
/**
36
 * A <code>TriggeringPolicy</code> controls the conditions under which rollover
37
 * occurs. Such conditions include time of day, file size, an
38
 * external event or a combination thereof.
39
 *
40
 *
41
 *
42
 * */
43
44
class LOG4CXX_EXPORT TriggeringPolicy
45
#if LOG4CXX_ABI_VERSION <= 15
46
  : public virtual spi::OptionHandler
47
  , public virtual helpers::Object
48
#else
49
  : public spi::OptionHandler
50
#endif
51
{
52
    DECLARE_ABSTRACT_LOG4CXX_OBJECT(TriggeringPolicy)
53
3.38k
    BEGIN_LOG4CXX_CAST_MAP()
54
3.38k
    LOG4CXX_CAST_ENTRY(TriggeringPolicy)
55
2.25k
    LOG4CXX_CAST_ENTRY(spi::OptionHandler)
56
2.25k
    END_LOG4CXX_CAST_MAP()
57
  public:
58
    virtual ~TriggeringPolicy();
59
60
    /**
61
     * Determines if a rollover may be appropriate at this time.  If
62
     * true is returned, RolloverPolicy.rollover will be called but it
63
     * can determine that a rollover is not warranted.
64
     *
65
     * @param appender A reference to the appender.
66
     * @param event A reference to the currently event.
67
     * @param filename The filename for the currently active log file.
68
     * @param fileLength Length of the file in bytes.
69
     * @return true if a rollover should occur.
70
     */
71
    virtual bool isTriggeringEvent(
72
      Appender* appender,
73
      const spi::LoggingEventPtr& event,
74
      const LogString& filename,
75
      size_t fileLength) = 0;
76
77
};
78
79
LOG4CXX_PTR_DEF(TriggeringPolicy);
80
81
82
}
83
}
84
85
#endif