This file is indexed.

/usr/include/giomm-2.4/giomm/unixfdlist.h is in libglibmm-2.4-dev 2.32.1-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
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
// -*- c++ -*-
// Generated by gtkmmproc -- DO NOT MODIFY!
#ifndef _GIOMM_UNIXFDLIST_H
#define _GIOMM_UNIXFDLIST_H


#include <glibmm/ustring.h>
#include <sigc++/sigc++.h>

// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-

/* Copyright (C) 2010 The giomm Development Team
 *
 * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include <glibmm/object.h>
#include <glibmm/arrayhandle.h>


#ifndef DOXYGEN_SHOULD_SKIP_THIS
typedef struct _GUnixFDList GUnixFDList;
typedef struct _GUnixFDListClass GUnixFDListClass;
#endif /* DOXYGEN_SHOULD_SKIP_THIS */


namespace Gio
{ class UnixFDList_Class; } // namespace Gio
namespace Gio
{


/** UnixFDList - An object containing a set of UNIX file descriptors.
 * A UnixFDList contains a list of file descriptors. It owns the file
 * descriptors that it contains, closing them when finalized.
 *
 * It may be wrapped in a UnixFDMessage and sent over a Socket in the
 * G_SOCKET_ADDRESS_UNIX family by using Gio::Socket::send() and received
 * using Gio::Socket::receive().
 *
 * @ingroup NetworkIO
 * @newin{2,28}
 */

class UnixFDList : public Glib::Object
{
  
#ifndef DOXYGEN_SHOULD_SKIP_THIS

public:
  typedef UnixFDList CppObjectType;
  typedef UnixFDList_Class CppClassType;
  typedef GUnixFDList BaseObjectType;
  typedef GUnixFDListClass BaseClassType;

private:  friend class UnixFDList_Class;
  static CppClassType unixfdlist_class_;

private:
  // noncopyable
  UnixFDList(const UnixFDList&);
  UnixFDList& operator=(const UnixFDList&);

protected:
  explicit UnixFDList(const Glib::ConstructParams& construct_params);
  explicit UnixFDList(GUnixFDList* castitem);

#endif /* DOXYGEN_SHOULD_SKIP_THIS */

public:
  virtual ~UnixFDList();

#ifndef DOXYGEN_SHOULD_SKIP_THIS
  static GType get_type()      G_GNUC_CONST;


  static GType get_base_type() G_GNUC_CONST;
#endif

  ///Provides access to the underlying C GObject.
  GUnixFDList*       gobj()       { return reinterpret_cast<GUnixFDList*>(gobject_); }

  ///Provides access to the underlying C GObject.
  const GUnixFDList* gobj() const { return reinterpret_cast<GUnixFDList*>(gobject_); }

  ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
  GUnixFDList* gobj_copy();

private:

  //This is not available in on Win32.
//This source file will not be compiled,
//and the class will not be registered in wrap_init.h or wrap_init.cc


protected:
  UnixFDList();
  

  explicit UnixFDList(const Glib::ArrayHandle<int>& fds);

 
    explicit UnixFDList(const Glib::ArrayHandle<int>& fds, int n_fds);


public:
  
  /** Creates a new UnixFDList containing no file descriptors.
   * 
   * @newin{2,24}
   * @return A new UnixFDList.
   */

  
  static Glib::RefPtr<UnixFDList> create();


  /** Creates a new UnixFDList containing the file descriptors given in @a
   * fds.  The file descriptors become the property of the new list and may no
   * longer be used by the caller. The array itself is owned by the caller.
   *
   * Each file descriptor in the array should be set to close-on-exec.
   * @param fds The list of file descriptors to use for creation.
   * @return A new UnixFDList.
   */
  
  static Glib::RefPtr<UnixFDList> create(const Glib::ArrayHandle<int>& fds);


  /** Creates a new UnixFDList containing the file descriptors given in
   *  @a fds.  The file descriptors become the property of the new list and
   * may no longer be used by the caller.  The array itself is owned by
   * the caller.
   * 
   * Each file descriptor in the array should be set to close-on-exec.
   * 
   * If @a n_fds is -1 then @a fds must be terminated with -1.
   * 
   * @newin{2,24}
   * @param fds The initial list of file descriptors.
   * @param n_fds The length of #fds, or -1.
   * @return A new UnixFDList.
   */

  
  static Glib::RefPtr<UnixFDList> create(const Glib::ArrayHandle<int>& fds, int n_fds);


  /** Gets the length of @a list (ie: the number of file descriptors
   * contained within).
   * 
   * @newin{2,24}
   * @return The length of @a list.
   */
  int get_length() const;
  
  /** Gets a file descriptor out of @a list.
   * 
   *  @a index specifies the index of the file descriptor to get.  It is a
   * programmer error for @a index to be out of range; see
   * g_unix_fd_list_get_length().
   * 
   * The file descriptor is duplicated using dup() and set as
   * close-on-exec before being returned.  You must call close() on it
   * when you are done.
   * 
   * A possible cause of failure is exceeding the per-process or
   * system-wide file descriptor limit.
   * 
   * @newin{2,24}
   * @param index The index into the list.
   * @return The file descriptor, or -1 in case of error.
   */
  int get(int index) const;

  /** Returns the array of file descriptors that is contained in this object.
   *
   * After this call, the descriptors remain the property of the list. The
   * caller must not close them. The array is valid only until list is changed
   * in any way.
   * @return The list of file descriptors.
   *
   * @newin{2,28}
   */
  const Glib::ArrayHandle<int> peek_fds() const;
  

  /** Returns the array of file descriptors that is contained in this object.
   *
   * After this call, the descriptors are no longer contained in the list.
   * Further calls will return an empty list (unless more descriptors have
   * been added).
   *
   * The caller is responsible for closing all of the file descriptors. The
   * file descriptors in the array are set to close-on-exec.
   * @return The list of file descriptors.
   *
   * @newin{2,28}
   */
  Glib::ArrayHandle<int> steal_fds();
  

  /** Adds a file descriptor to @a list.
   * 
   * The file descriptor is duplicated using dup(). You keep your copy
   * of the descriptor and the copy contained in @a list will be closed
   * when @a list is finalized.
   * 
   * A possible cause of failure is exceeding the per-process or
   * system-wide file descriptor limit.
   * 
   * The index of the file descriptor in the list is returned.  If you use
   * this index with g_unix_fd_list_get() then you will receive back a
   * duplicated copy of the same file descriptor.
   * 
   * @newin{2,24}
   * @param fd A valid open file descriptor.
   * @return The index of the appended fd in case of success, else -1
   * (and @a error is set).
   */


  /**@throw Glib::Error.
   */
  int append(int fd);


public:

public:
  //C++ methods used to invoke GTK+ virtual functions:

protected:
  //GTK+ Virtual Functions (override these to change behaviour):

  //Default Signal Handlers::


};

} // namespace Gio


namespace Glib
{
  /** A Glib::wrap() method for this object.
   * 
   * @param object The C instance.
   * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
   * @result A C++ instance that wraps this C instance.
   *
   * @relates Gio::UnixFDList
   */
  Glib::RefPtr<Gio::UnixFDList> wrap(GUnixFDList* object, bool take_copy = false);
}


#endif /* _GIOMM_UNIXFDLIST_H */