This file is indexed.

/usr/include/giomm-2.4/giomm/settingsschema.h is in libglibmm-2.4-dev 2.50.0-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
// Generated by gmmproc 2.50.0 -- DO NOT MODIFY!
#ifndef _GIOMM_SETTINGSSCHEMA_H
#define _GIOMM_SETTINGSSCHEMA_H

#include <giommconfig.h>


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

/* Copyright (C) 2015 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 <giomm/settingsschemakey.h>
#include <glibmm/arrayhandle.h>


#ifndef DOXYGEN_SHOULD_SKIP_THIS
typedef struct _GSettingsSchema GSettingsSchema;
#endif

namespace Gio
{

//TODO: Translate more of the class documentation from the C docs.

/** Introspecting and controlling the loading of GSettings schemas.
 *
 * The SettingsSchemaSource and SettingsSchema APIs provide a
 * mechanism for advanced control over the loading of schemas and a
 * mechanism for introspecting their content.
 *
 * Plugin loading systems that wish to provide plugins a way to access
 * settings face the problem of how to make the schemas for these
 * settings visible to GSettings.  Typically, a plugin will want to ship
 * the schema along with itself and it won't be installed into the
 * standard system directories for schemas.
 *
 * SettingsSchemaSource provides a mechanism for dealing with this by
 * allowing the creation of a new 'schema source' from which schemas can
 * be acquired.  This schema source can then become part of the metadata
 * associated with the plugin and queried whenever the plugin requires
 * access to some settings.
 *
 * @newin{2,32}
 */
class SettingsSchema final
{
  public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
  using CppObjectType = SettingsSchema;
  using BaseObjectType = GSettingsSchema;
#endif /* DOXYGEN_SHOULD_SKIP_THIS */


  /** Increment the reference count for this object.
   * You should never need to do this manually - use the object via a RefPtr instead.
   */
  void reference()   const;

  /** Decrement the reference count for this object.
   * You should never need to do this manually - use the object via a RefPtr instead.
   */
  void unreference() const;

  ///Provides access to the underlying C instance.
  GSettingsSchema*       gobj();

  ///Provides access to the underlying C instance.
  const GSettingsSchema* gobj() const;

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

  SettingsSchema() = delete;

  // noncopyable
  SettingsSchema(const SettingsSchema&) = delete;
  SettingsSchema& operator=(const SettingsSchema&) = delete;

protected:
  // Do not derive this.  Gio::SettingsSchema can neither be constructed nor deleted.

  void operator delete(void*, std::size_t);

private:


protected:
  

  //Ignore internal GSettingsSchema functions.
  

public:
  
  /** Get the ID of @a schema.
   * 
   * @return The ID.
   */
  Glib::ustring get_id() const;
  
  /** Gets the path associated with @a schema, or <tt>nullptr</tt>.
   * 
   * Schemas may be single-instance or relocatable.  Single-instance
   * schemas correspond to exactly one set of keys in the backend
   * database: those located at the path returned by this function.
   * 
   * Relocatable schemas can be referenced by other schemas and can
   * threfore describe multiple sets of keys at different locations.  For
   * relocatable schemas, this function will return <tt>nullptr</tt>.
   * 
   * @newin{2,32}
   * 
   * @return The path of the schema, or <tt>nullptr</tt>.
   */
  Glib::ustring get_path() const;

  //Note that these don't need refreturn because they seem to return a reference
  //(they are documented as transfer:full)
  
  /** Gets the key named @a name from @a schema.
   * 
   * It is a programmer error to request a key that does not exist.  See
   * g_settings_schema_list_keys().
   * 
   * @newin{2,40}
   * 
   * @param name The name of a key.
   * @return The SettingsSchemaKey for @a name.
   */
  Glib::RefPtr<SettingsSchemaKey> get_key(const Glib::ustring& name);
  
  /** Gets the key named @a name from @a schema.
   * 
   * It is a programmer error to request a key that does not exist.  See
   * g_settings_schema_list_keys().
   * 
   * @newin{2,40}
   * 
   * @param name The name of a key.
   * @return The SettingsSchemaKey for @a name.
   */
  Glib::RefPtr<const SettingsSchemaKey> get_key(const Glib::ustring& name) const;

  
  /** Checks if @a schema has a key named @a name.
   * 
   * @newin{2,40}
   * 
   * @param name The name of a key.
   * @return <tt>true</tt> if such a key exists.
   */
  bool has_key(const Glib::ustring& name) const;

 
  /** Introspects the list of keys on @a schema.
   * 
   * You should probably not be calling this function from "normal" code
   * (since you should already know what keys are in your schema).  This
   * function is intended for introspection reasons.
   * 
   * @newin{2,46}
   * 
   * @return A list of the keys on
   *  @a schema.
   */
  std::vector<Glib::ustring> list_keys() const;

  
  /** Gets the list of children in @a schema.
   * 
   * @newin{2,44}
   * 
   * @return A list of the children on @a settings.
   */
  std::vector<Glib::ustring> list_children() const;


};

} // 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::SettingsSchema
   */
  Glib::RefPtr<Gio::SettingsSchema> wrap(GSettingsSchema* object, bool take_copy = false);

} // namespace Glib


#endif /* _GIOMM_SETTINGSSCHEMA_H */