This file is indexed.

/usr/include/tango/log4tango/AppenderAttachable.hh is in liblog4tango4-dev 7.2.6+dfsg-4build2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
//
// AppenderAttachable.hh
//
// Copyright (C) :  2000 - 2002
//					LifeLine Networks BV (www.lifeline.nl). All rights reserved.
//					Bastiaan Bakker. All rights reserved.   
//					
//					2004,2005,2006,2007,2008,2009,2010
//					Synchrotron SOLEIL
//                	L'Orme des Merisiers
//                	Saint-Aubin - BP 48 - France
//
// This file is part of log4tango.
//
// Log4ango is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// 
// Log4tango is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Lesser General Public License for more details.
// 
// You should have received a copy of the GNU Lesser General Public License
// along with Log4Tango.  If not, see <http://www.gnu.org/licenses/>.

#ifndef _LOG4TANGO_APPENDER_ATTACHABLE_H
#define _LOG4TANGO_APPENDER_ATTACHABLE_H

#include <log4tango/Portability.hh>
#include <map>
#include <vector>
#include <log4tango/Appender.hh>
#include <log4tango/threading/Threading.hh>

namespace log4tango {

/**
 * A map of appenders
 **/
typedef std::map<std::string, Appender*> AppenderMap;

/**
 * A map of appenders iterator
 **/
typedef AppenderMap::iterator AppenderMapIterator;

/**
 * Define what is a list of appenders
 **/
typedef std::vector<Appender*> AppenderList;


//-----------------------------------------------------------------------------
// class : AppenderAttachable
//----------------------------------------------------------------------------- 
class LOG4TANGO_EXPORT AppenderAttachable 
{
  public:

    /**
     * Constructor.
     **/
    AppenderAttachable ();

    /**
     * Destructor.
     **/
    virtual ~AppenderAttachable ();
    
    /**
     * Adds an Appender. Does nothing if the appender is NULL 
     * or already attached.
     **/
    void add_appender (Appender* appender);

    /**
     * Get all previously added appenders as a vector.
     * The caller must call "release" on each Appender in 
     * the returned list when it is no longer needed (the 
     * Appender class is ref-counted).
     **/
    AppenderList get_all_appenders (void);

    /**
     * Get an appender by name. 
     * The caller must call "release" on the returned Appender 
     * when it is no longer needed (the Appender class is 
     * ref-counted). Returns 0 if there is no Appender named 
     * "name" currently attached.
     **/
    Appender* get_appender (const std::string& name);

    /**
     * Returns true if the specified appender is in list of 
     * attached appanders, false otherwise.
     **/
    bool is_attached (Appender* appender);

    /**
     * Removes all appenders for this Logger.
     **/
    void remove_all_appenders();

    /**
     * Remove the appender passed as parameter from the list of appenders.
     **/
    void remove_appender(Appender* appender);

    /**
     * Remove the appender with the name passed as parameter from the 
     * list of appenders.
     **/
    void remove_appender(const std::string& name);

  protected:

    /**
     * Appenders repository.
     **/
    AppenderMap _appenders;

    /**
     * A mutex to protect the repository against race conditions.
     **/
    threading::Mutex _appendersMutex;

    AppenderAttachable (const AppenderAttachable& other);
    AppenderAttachable& operator=(const AppenderAttachable& other);
};

} // namespace log4tango

#endif // _LOG4TANGO_APPENDER_ATTACHABLE_H