Coverage Report

Created: 2025-10-27 06:48

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
  public virtual spi::OptionHandler,
46
  public virtual helpers::Object
47
{
48
    DECLARE_ABSTRACT_LOG4CXX_OBJECT(TriggeringPolicy)
49
1.50k
    BEGIN_LOG4CXX_CAST_MAP()
50
1.50k
    LOG4CXX_CAST_ENTRY(TriggeringPolicy)
51
0
    LOG4CXX_CAST_ENTRY(spi::OptionHandler)
52
0
    END_LOG4CXX_CAST_MAP()
53
  public:
54
    virtual ~TriggeringPolicy();
55
56
    /**
57
     * Determines if a rollover may be appropriate at this time.  If
58
     * true is returned, RolloverPolicy.rollover will be called but it
59
     * can determine that a rollover is not warranted.
60
     *
61
     * @param appender A reference to the appender.
62
     * @param event A reference to the currently event.
63
     * @param filename The filename for the currently active log file.
64
     * @param fileLength Length of the file in bytes.
65
     * @return true if a rollover should occur.
66
     */
67
    virtual bool isTriggeringEvent(
68
      Appender* appender,
69
      const spi::LoggingEventPtr& event,
70
      const LogString& filename,
71
      size_t fileLength) = 0;
72
73
};
74
75
LOG4CXX_PTR_DEF(TriggeringPolicy);
76
77
78
}
79
}
80
81
#endif