This file is indexed.

/usr/include/mama/MamaSymbolList.h is in libmama-dev 2.2.2.1-11.1.

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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
/* $Id$
 *
 * OpenMAMA: The open middleware agnostic messaging API
 * Copyright (C) 2011 NYSE Technologies, Inc.
 *
 * This library 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 2.1 of the License, or (at your option) any later version.
 *
 * This library 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 this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 * 02110-1301 USA
 */

#ifndef MAMA_SYMBOL_LIST_CPP_H__
#define MAMA_SYMBOL_LIST_CPP_H__

#include <mama/mamacpp.h>
#include <mama/MamaSymbolListMember.h>
#include <mama/MamaSymbolListHandlerTypes.h>

namespace Wombat 
{

    /**
     * MamaSymbolList manages a list of MAMA symbols and related
     * attributes.  Methods are provided for creating, updating and
     * sorting the members of the list.  Handler interfaces are provided
     * so that it is possible to handle asynchronous/external changes to
     * the symbol list, as many types of symbol lists can be quite
     * dynamic.
     */

    class MAMACPPExpDLL MamaSymbolList
    {
    public:
     
        MamaSymbolList ();
        virtual ~MamaSymbolList ();

        /**
         * Add a "membership" handler that implements the
         * MamaSymbolListMembershipHandler interface.  Multiple handlers
         * may be registered.
         *
         * @param handler   The handler to be registered.
         */
        void addMembershipHandler (MamaSymbolListMembershipHandler*  handler);

        /**
         * Add a symbol to the list. 
         * The list maintains a unique list of symbols.
         *
         * @param member     The symbol member to be added.
         */
        void addMember (MamaSymbolListMember*  member);

        /**
         * Find a symbol in the list. 
         *
         * @param symbol      The name of the symbol to be removed.
         * @param source      The source of the symbol to be removed.
         * @param transport   The transport of the symbol to be removed.
         * @return            The object containing additional information about the
         * symbol (or NULL).
         */
        MamaSymbolListMember*  findMember (const char*            symbol,
                                           const char *           source,
                                           mamaTransport          transport);

        /**
         * Remove a symbol from the list (providing it exists in the
         * list). The member itself is not destroyed but returned as the
         * result of this method.
         *
         * @param symbol  The symbol to be removed.
         * @param source      The source of the symbol to be removed
         * @param transport   The transport of the symbol to be removed
         * @return        The member just removed (or NULL if not found)
         */
        MamaSymbolListMember* removeMember (const char*             symbol,
                                            const char*             source,
                                            mamaTransport           transport);

        /**
         * Remove a symbol from the list (providing it exists in the
         * list).  The member itself is not destroyed.
         *
         * @param member  The member to be removed.
         */
        void removeMember (MamaSymbolListMember& member);

        /**
         * Remove all symbols from the list (providing it exists in the
         * list).  The member itself is not destroyed.
         *
         */
        void removeMemberAll (void);

        /**
         * Remove all symbols from the list.  Handlers remain registered.
         */
        void clear ();
        
        /**
         * Dump the contents of the list to stdout.  For debugging.
         */
        void dump ();

        /**
         * @return whether the symbol list is empty.
         */
        bool empty () const;

        /**
         * @return the size of the symbol list.
         */
        mama_size_t size () const;

        /**
         * Set the closure.
         *
         * @param closure  The closure.
         */
        void setClosure (void* closure);

        /**
         * Get the closure.
         *
         * @return  The closure.
         */
        void* getClosure () const;

        /**
         * Iterate over all members of the symbol list.
         *
         * @param handler  Handler invoked for each member of the symbol list.
         * @param iterateClosure  The closure passed to the
         *                MamaSymbolListIteratorHandler::onMember() interface.
         */
        void iterate (MamaSymbolListIteratorHandler&  handler,
                      void*                           iterateClosure = NULL);


        /**
         * Get the underlying Impl at C level
         * @return      The mamaSymbolList
         */
        mamaSymbolList getCValue ();

        /**
         * Get the underlying Impl at C level
         * @return      The mamaSymbolList
         */
        const mamaSymbolList getCValue () const;

        struct MamaSymbolListImpl;
        MamaSymbolListImpl* myPimpl;

    protected:
        mamaSymbolList  myList;
    };

} // namespace Wombat

#endif // MAMA_SYMBOL_LIST_CPP_H__