This file is indexed.

/usr/include/gupnp-1.0/libgupnp/gupnp-service-introspection.h is in libgupnp-1.0-dev 0.20.10-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
/*
 * Copyright (C) 2007 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
 * Copyright (C) 2006, 2007 OpenedHand Ltd.
 *
 * Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
 *         Jorn Baayen <jorn@openedhand.com>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 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
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library 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 __GUPNP_SERVICE_INTROSPECTION_H__
#define __GUPNP_SERVICE_INTROSPECTION_H__

#include <glib-object.h>

G_BEGIN_DECLS

GType
gupnp_service_introspection_get_type (void) G_GNUC_CONST;

#define GUPNP_TYPE_SERVICE_INTROSPECTION \
                (gupnp_service_introspection_get_type ())
#define GUPNP_SERVICE_INTROSPECTION(obj) \
                (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
                 GUPNP_TYPE_SERVICE_INTROSPECTION, \
                 GUPnPServiceIntrospection))
#define GUPNP_SERVICE_INTROSPECTION_CLASS(obj) \
                (G_TYPE_CHECK_CLASS_CAST ((obj), \
                 GUPNP_TYPE_SERVICE_INTROSPECTION, \
                 GUPnPServiceIntrospectionClass))
#define GUPNP_IS_SERVICE_INTROSPECTION(obj) \
                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
                 GUPNP_TYPE_SERVICE_INTROSPECTION))
#define GUPNP_IS_SERVICE_INTROSPECTION_CLASS(obj) \
                (G_TYPE_CHECK_CLASS_TYPE ((obj), \
                 GUPNP_TYPE_SERVICE_INTROSPECTION))
#define GUPNP_SERVICE_INTROSPECTION_GET_CLASS(obj) \
                (G_TYPE_INSTANCE_GET_CLASS ((obj), \
                 GUPNP_TYPE_SERVICE_INTROSPECTION, \
                 GUPnPServiceIntrospectionClass))

/**
 * GUPnPServiceActionArgDirection:
 * @GUPNP_SERVICE_ACTION_ARG_DIRECTION_IN: An "in" variable, to the service.
 * @GUPNP_SERVICE_ACTION_ARG_DIRECTION_OUT: An "out" variable, from the service.
 *
 * Represents the direction of a service state variable.
 **/
typedef enum
{
        GUPNP_SERVICE_ACTION_ARG_DIRECTION_IN,
        GUPNP_SERVICE_ACTION_ARG_DIRECTION_OUT
} GUPnPServiceActionArgDirection;

/**
 * GUPnPServiceActionArgInfo:
 * @name: The name of the action argument.
 * @direction: The direction of the action argument.
 * @related_state_variable: The name of the state variable associated with this
 * argument.
 * @retval: Whether this argument is the return value of the action.
 *
 * This structure contains information about the argument of service action.
 **/
typedef struct {
        char                          *name;
        GUPnPServiceActionArgDirection direction;
        char                          *related_state_variable;
        gboolean                       retval;
} GUPnPServiceActionArgInfo;

/**
 * GUPnPServiceActionInfo:
 * @name: The name of the action argument.
 * @arguments: (type GList) (element-type GUPnP.ServiceActionArgInfo):A GList of all the arguments
 * (of type #GUPnPServiceActionArgInfo) of this action.
 *
 * This structure contains information about a service action.
 **/
typedef struct {
        char  *name;
        GList *arguments; /* list of #GUPnPServiceActionArgInfo */
} GUPnPServiceActionInfo;

/**
 * GUPnPServiceStateVariableInfo:
 * @name: The name of the state variable.
 * @send_events: Whether this state variable can source events.
 * @is_numeric: Wether this state variable is a numeric type (integer and
 * float).
 * @type: The GType of this state variable.
 * @default_value: The default value of this state variable.
 * @minimum: The minimum value of this state variable. Only applies to numeric
 * data types.
 * @maximum: The maximum value of this state variable. Only applies to numeric
 * data types.
 * @step: The step value of this state variable. Only applies to numeric
 * data types.
 * @allowed_values: (element-type utf8): The allowed values of this state variable. Only applies to
 * string data types. Unlike the other fields in this structure, this field
 * contains a list of (char *) strings rather than GValues.
 *
 * This structure contains information about service state variable.
 **/
typedef struct {
        char    *name;
        gboolean send_events;
        gboolean is_numeric;
        GType    type;
        GValue   default_value;
        GValue   minimum;
        GValue   maximum;
        GValue   step;
        GList   *allowed_values;
} GUPnPServiceStateVariableInfo;

typedef struct _GUPnPServiceIntrospectionPrivate
                GUPnPServiceIntrospectionPrivate;
typedef struct _GUPnPServiceIntrospection
                GUPnPServiceIntrospection;
typedef struct _GUPnPServiceIntrospectionClass
                GUPnPServiceIntrospectionClass;

/**
 * GUPnPServiceIntrospection:
 *
 * This struct contains private data only, and should be accessed using the
 * functions below.
 */
struct _GUPnPServiceIntrospection {
        GObject parent;

        GUPnPServiceIntrospectionPrivate *priv;
};

struct _GUPnPServiceIntrospectionClass {
        GObjectClass parent_class;
};

const GList *
gupnp_service_introspection_list_action_names
                                (GUPnPServiceIntrospection *introspection);

const GList *
gupnp_service_introspection_list_actions
                                (GUPnPServiceIntrospection *introspection);

const GUPnPServiceActionInfo *
gupnp_service_introspection_get_action
                                (GUPnPServiceIntrospection *introspection,
                                 const gchar               *action_name);

const GList *
gupnp_service_introspection_list_state_variable_names
                                (GUPnPServiceIntrospection *introspection);

const GList *
gupnp_service_introspection_list_state_variables
                                (GUPnPServiceIntrospection *introspection);

const GUPnPServiceStateVariableInfo *
gupnp_service_introspection_get_state_variable
                                (GUPnPServiceIntrospection *introspection,
                                 const gchar               *variable_name);

G_END_DECLS

#endif /* __GUPNP_SERVICE_INTROSPECTION_H__ */