This file is indexed.

/usr/include/gloox/atomicrefcount.h is in libgloox-dev 1.0.9-2.

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
/*
  Copyright (c) 2007-2013 by Jakob Schroeter <js@camaya.net>
  This file is part of the gloox library. http://camaya.net/gloox

  This software is distributed under a license. The full license
  agreement can be found in the file LICENSE in this distribution.
  This software may not be copied, modified, sold or distributed
  other than expressed in the named license agreement.

  This software is distributed without any warranty.
*/


#ifndef ATOMICREFCOUNT_H__
#define ATOMICREFCOUNT_H__

#include "macros.h"
#include "mutex.h"

namespace gloox
{

  namespace util
  {
    /**
     * @brief A simple implementation of a thread safe 32-bit
     *  reference count. Native functions are used where possible.
     *  When not available, a mutex is used for locking and unlocking.
     *
     * @author Daniel Bowen
     * @author Jakob Schröter <js@camaya.net>
     * @since 1.0.1
     */
    class GLOOX_API AtomicRefCount
    {
      public:
        /**
         * Contructs a new atomic reference count.
         */
        AtomicRefCount();

        /**
         * Increments the reference count, and returns the new value.
         * @return The new value.
         */
        int increment();

        /**
         * Decrements the reference count, and returns the new value.
         * @return The new value.
         */
        int decrement();

        /**
         * Resets the reference count to zero.
         * @since 1.0.4
         */
        void reset();
        
    private:
        AtomicRefCount& operator=( const AtomicRefCount& );

        volatile int m_count;

        // The mutex is only used if a native function is unavailable.
        Mutex m_lock;

    };

  }

}

#endif // ATOMICREFCOUNT_H__