This file is indexed.

/usr/include/dee-1.0/dee-index.h is in libdee-dev 1.2.7+14.04.20140324-0ubuntu1.

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
/*
 * Copyright (C) 2010-2011 Canonical, Ltd.
 *
 * This library is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License
 * version 3.0 as published by the Free Software Foundation.
 *
 * 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 version 3.0 for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library. If not, see
 * <http://www.gnu.org/licenses/>.
 *
 * Authored by Mikkel Kamstrup Erlandsen <mikkel.kamstrup@canonical.com>
 */

#if !defined (_DEE_H_INSIDE) && !defined (DEE_COMPILATION)
#error "Only <dee.h> can be included directly."
#endif

#ifndef _HAVE_DEE_INDEX_H
#define _HAVE_DEE_INDEX_H

#include <glib.h>
#include <glib-object.h>
#include <dee-model.h>
#include <dee-model-reader.h>
#include <dee-term-list.h>
#include <dee-result-set.h>
#include <dee-analyzer.h>

G_BEGIN_DECLS

#define DEE_TYPE_INDEX (dee_index_get_type ())

#define DEE_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
        DEE_TYPE_INDEX, DeeIndex))

#define DEE_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \
        DEE_TYPE_INDEX, DeeIndexClass))

#define DEE_IS_INDEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
        DEE_TYPE_INDEX))

#define DEE_IS_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
        DEE_TYPE_INDEX))

#define DEE_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \
        DBUS_TYPE_INDEX, DeeIndexClass))

typedef struct _DeeIndexClass DeeIndexClass;
typedef struct _DeeIndex DeeIndex;
typedef struct _DeeIndexPrivate DeeIndexPrivate;

/**
 * DeeIndexIterFunc:
 * @key: A key in the index being traversed
 * @rows: A #DeeResultSet. Do not free or modify.
 * @userdata: (closure): The pointer passed to dee_index_foreach()
 *
 * The signature of the function passed to dee_index_foreach().
 *
 * Be cautious if you plan on modifying the rows in the model via the
 * DeeModelIter<!-- -->s you find. Your code may have to be reentrant since
 * the index may change in reaction to the changes in the model. It's not
 * impossible to do this in a non-broken manner, but it may likely require
 * you calling dee_model_freeze_signals() and dee_model_thaw_signals() at
 * strategic points.
 *
 * Returns: %FALSE if iteration should stop, %TRUE if it should continue
 */
typedef gboolean        (*DeeIndexIterFunc) (const gchar  *key,
                                             DeeResultSet *rows,
                                             gpointer      userdata);

/**
 * DeeTermMatchFlag:
 * @DEE_TERM_MATCH_EXACT: Match terms byte for byte as specified in the
 *                        query string
 * @DEE_TERM_MATCH_PREFIX: Match if the indexed term begins with the byte string
 *                         being queried by. This is also sometimes known as
 *                         truncated- or wildcard queries
 *
 * Flags passed to dee_index_lookup() to control how matching is done.
 * Note that it is not required that index backends support more than just
 * #DEE_TERM_MATCH_EXACT.
 *
 * You can query for the supported flags with
 * dee_index_get_supported_term_match_flags().
 */
typedef enum
{
  DEE_TERM_MATCH_EXACT = 1 << 0,
  DEE_TERM_MATCH_PREFIX = 1 << 1
} DeeTermMatchFlag;

/**
 * DeeIndex:
 *
 * All fields in the DeeIndex structure are private and should never be
 * accessed directly
 */
struct _DeeIndex
{
  /*< private >*/
  GObject          parent;

  DeeIndexPrivate *priv;
};

struct _DeeIndexClass
{
  GObjectClass     parent_class;

  /*< public >*/
  DeeResultSet*  (* lookup)             (DeeIndex         *self,
                                         const gchar      *term,
                                         DeeTermMatchFlag  flags);

  void           (* foreach)            (DeeIndex          *self,
                                         const gchar       *start_term,
                                         DeeIndexIterFunc   func,
                                         gpointer           userdata);

  guint          (* get_n_terms)        (DeeIndex     *self);

  guint          (* get_n_rows)         (DeeIndex     *self);

  guint          (* get_n_rows_for_term)(DeeIndex     *self,
                                         const gchar       *term);

  guint          (*get_supported_term_match_flags) (DeeIndex *self);

  /*< private >*/
  void     (*_dee_index_1) (void);
  void     (*_dee_index_2) (void);
  void     (*_dee_index_3) (void);
  void     (*_dee_index_4) (void);
  void     (*_dee_index_5) (void);
};

GType                dee_index_get_type           (void);

DeeResultSet*        dee_index_lookup             (DeeIndex         *self,
                                                   const gchar      *term,
                                                   DeeTermMatchFlag  flags);

DeeModelIter*        dee_index_lookup_one         (DeeIndex         *self,
                                                   const gchar      *term);

void                 dee_index_foreach            (DeeIndex         *self,
                                                   const gchar      *start_term,
                                                   DeeIndexIterFunc  func,
                                                   gpointer          userdata);

DeeModel*            dee_index_get_model          (DeeIndex *self);

DeeAnalyzer*         dee_index_get_analyzer       (DeeIndex *self);

DeeModelReader*      dee_index_get_reader         (DeeIndex *self);

guint                dee_index_get_n_terms        (DeeIndex *self);

guint                dee_index_get_n_rows         (DeeIndex *self);

guint                dee_index_get_n_rows_for_term (DeeIndex *self,
                                                    const gchar   *term);

guint                dee_index_get_supported_term_match_flags (DeeIndex *self);

G_END_DECLS

#endif /* _HAVE_DEE_INDEX_H */