This file is indexed.

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

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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
/* $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 MamaSourceH__
#define MamaSourceH__

#include "mama/config.h"
#include "mama/status.h"
#include "mama/sourceman.h"
#include "mama/types.h"
#include "mama/quality.h"

#if defined(__cplusplus)
extern "C" {
#endif

typedef enum mamaSourceState_
{
    MAMA_SOURCE_STATE_OFF     = 0,
    MAMA_SOURCE_STATE_OK      = 1,
    MAMA_SOURCE_STATE_UNKNOWN = 99
} mamaSourceState;

/**
 * Create a mamaSource object.
 *
 * @param source The location of a mamaSource to store the result.
 */
MAMAExpDLL
extern mama_status
mamaSource_create (mamaSource*  source);

/**
 * Destroy a mamaSource object.
 *
 * @param source  The source object to destroy.
 */
MAMAExpDLL
extern mama_status
mamaSource_destroy (mamaSource  source);

/**
 * Clear a mamaSource object.
 *
 * @param source  The source object to clear.
 */
MAMAExpDLL
extern mama_status
mamaSource_clear (mamaSource  source);

/**
 * Set the ID of a mamaSource object.
 *
 * @param source   The source object to update.
 * @param id       The new ID for the source object.
 */
MAMAExpDLL
extern mama_status
mamaSource_setId (mamaSource  source,
                  const char* id);

/**
 * Set the mapped ID of a mamaSource object.  The mapped ID is the ID
 * that the parent source manager has mapped this source as.
 *
 * @param source   The source object to update.
 * @param id       The new mapped ID for the source object.
 */
MAMAExpDLL
extern mama_status
mamaSource_setMappedId (mamaSource  source,
                        const char* id);

/**
 * Set the display ID of a mamaSource object.
 *
 * @param source   The source object to update.
 * @param id       The new display ID for the source object.
 */
MAMAExpDLL
extern mama_status
mamaSource_setDisplayId (mamaSource  source,
                         const char* id);

/**
 * Set the quality of a mamaSource object.
 *
 * @param source   The source object to update.
 * @param quality  The new quality for the source object.
 */
MAMAExpDLL
extern mama_status
mamaSource_setQuality (mamaSource  source,
                       mamaQuality quality);

/**
 * Set the state of a mamaSource object.
 *
 * @param source   The source object to update.
 * @param quality  The new state for the source object.
 */
MAMAExpDLL
extern mama_status
mamaSource_setState (mamaSource      source,
                     mamaSourceState quality);

/**
 * Set the parent for a mamaSource object. The current mamaSource is added to
 * the parents sub source manager.
 *
 * @see mamaSource_getSubSourceManager()
 *
 * @param source   The source object to update.
 * @param parent   The parent source for this source object.
 */
MAMAExpDLL
extern mama_status
mamaSource_setParent (mamaSource source,
                      mamaSource parent);

/**
 * Set the publisher specific source name for this source. e.g. This could be
 * "NASDAQ" for a UTP PAPA publisher.
 *
 * @param source The source object to update.
 * @param symbolNamespace The namespace for the publisher this
 * mamaSource object describes.
 */
MAMAExpDLL
extern mama_status
mamaSource_setSymbolNamespace (mamaSource  source,
                               const char* symbolNamespace);

/**
 * Set the name of the mamaTransport on which this describes a valid source of
 * data.
 *
 * @param source The source object to update.
 * @param transportName The name of the mamaTransport for which this source is
 * valid.
 */
MAMAExpDLL
extern mama_status
mamaSource_setTransportName (mamaSource  source,
                             const char* transportName);

/**
 * Associate a mamaTransport object with the source.
 *
 * @param source The source to update.
 * @param transport The mamaTransport to associate with the source.
 */
MAMAExpDLL
extern mama_status
mamaSource_setTransport (mamaSource    source,
                         mamaTransport transport);

                         
/**
 * Associate a mamaSymbology object with the source.
 *
 * @param source The source to update.
 * @param symbology The mamaSymbology to associate with the source.
 */
MAMAExpDLL
extern mama_status
mamaSource_setSymbology (mamaSource    source,
                         mamaSymbology symbology);                        
/**
 * Get the ID of a mamaSource object.
 *
 * @param source   The source object to check.
 * @param id       Location of the result for the ID of the source.
 */
MAMAExpDLL
extern mama_status
mamaSource_getId (const mamaSource source,
                  const char**     id);

/**
 * Get the mapped ID of a mamaSource object.
 *
 * @param source   The source object to check.
 * @param id       Location of the result for the mapped ID of the source.
 */
MAMAExpDLL
extern mama_status
mamaSource_getMappedId (const mamaSource source,
                        const char**     id);

/**
 * Get the display ID of a mamaSource object.
 *
 * @param source   The source object to check.
 * @param id       Location of the result for the display ID of the source.
 */
MAMAExpDLL
extern mama_status
mamaSource_getDisplayId (const mamaSource source,
                         const char**     id);

/**
 * Get the quality of a mamaSource object.
 *
 * @param source   The source object to check.
 * @param quality  Location of the result for the quality of the source.
 */
MAMAExpDLL
extern mama_status
mamaSource_getQuality (const mamaSource source,
                       mamaQuality*     quality);

/**
 * Get the state of a mamaSource object.
 *
 * @param source   The source object to check.
 * @param state    Location of the result for the state of the source.
 */
MAMAExpDLL
extern mama_status
mamaSource_getState (const mamaSource source,
                     mamaSourceState* state);

/*
   Get the stringified representation of the source state.
*/
MAMAExpDLL
extern const char*
mamaSource_getStateAsString (const mamaSource source);

/**
 * Get the parent source for a mamaSource object.
 *
 * @param source   The source object to check.
 * @param parent   Location to store the address of the parent for this source.
 */
MAMAExpDLL
extern mama_status
mamaSource_getParent (const mamaSource source,
                      mamaSource*      parent);

/**
 * Get the source name for the publisher which this mamaSource represents.
 *
 * @param source The source object to check.
 * @param symbolNamespace The source name for the publisher.
 */
MAMAExpDLL
extern mama_status
mamaSource_getSymbolNamespace (const mamaSource source,
                               const char**     symbolNamespace);

/**
 * Get the name of the mamaTransport on which this source is valid.
 * 
 * @param source The source object to check.
 * @param transportName The location to store the pointer to the
 * transportName.
 */
MAMAExpDLL
extern mama_status
mamaSource_getTransportName (const mamaSource source,
                             const char**     transportName);

/**
 * Get the mamaTransport associated with this source.
 *
 * @param source The source object to check.
 * @param transport The mamaTransport associated with this source.
 */
MAMAExpDLL
extern mama_status
mamaSource_getTransport (const mamaSource source,
                         mamaTransport*   transport);


/**
 * Get the mamaSymbology associated with this source.
 *
 * @param source The source object to check.
 * @param symbology The mamaSymbology associated with this source.
 */
MAMAExpDLL
extern mama_status
mamaSource_getSymbology (const mamaSource source,
                         mamaSymbology*   symbology);
                         
/**
 * A mamaSource can have sub-sources. These sub sources are maintained by a
 * mamaSourceManager within the mamaSource.
 *
 * @param source The mamaSource for which the sub source manager is being
 * obtained.
 * @param subSourceManager The location top store the address of the sub
 * source manager object pointer.
 */
MAMAExpDLL
extern mama_status
mamaSource_getSubSourceManager (const mamaSource   source,
                                mamaSourceManager* subSourceManager);

#if defined(__cplusplus)
}
#endif

#endif