This file is indexed.

/usr/include/unique-3.0/unique/uniqueapp.h is in libunique-3.0-dev 3.0.2-2ubuntu1.

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
/* Unique - Single Instance Backendlication library
 * uniqueapp.h: Base class for single instance applications
 *
 * Copyright (C) 2007  Emmanuele Bassi  <ebassi@o-hand.com>
 *
 * 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 __UNIQUE_APP_H__
#define __UNIQUE_APP_H__

#include <glib-object.h>
#include <unique/uniquemessage.h>
#include <gtk/gtk.h>

G_BEGIN_DECLS

#define UNIQUE_TYPE_APP                 (unique_app_get_type ())
#define UNIQUE_APP(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNIQUE_TYPE_APP, UniqueApp))
#define UNIQUE_IS_APP(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNIQUE_TYPE_APP))
#define UNIQUE_APP_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), UNIQUE_TYPE_APP, UniqueAppClass))
#define UNIQUE_IS_APP_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), UNIQUE_TYPE_APP))
#define UNIQUE_APP_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), UNIQUE_TYPE_APP, UniqueAppClass))

/**
 * UniqueCommand:
 * @UNIQUE_INVALID: used internally
 * @UNIQUE_ACTIVATE: request to activate a currently active instance; this
 *   usually means calling gtk_window_present() on the application window.
 * @UNIQUE_NEW: request to create a new file.
 * @UNIQUE_OPEN: request to open a file.
 * @UNIQUE_CLOSE: requests to close the currently running instance.
 *
 * Command to send to a currently active instance. User defined commands
 * should be positive integers, and should be added using the
 * unique_app_add_command() function after creating a #UniqueApp instance
 */
typedef enum { /*< prefix=UNIQUE >*/
  UNIQUE_INVALID  = 0,
  UNIQUE_ACTIVATE = -1,
  UNIQUE_NEW      = -2,
  UNIQUE_OPEN     = -3,
  UNIQUE_CLOSE    = -4
} UniqueCommand;

/**
 * UniqueResponse:
 * @UNIQUE_RESPONSE_INVALID: Internal error code, should never be used.
 * @UNIQUE_RESPONSE_OK: The command was successfully executed.
 * @UNIQUE_RESPONSE_CANCEL: The command was cancelled by the user.
 * @UNIQUE_RESPONSE_FAIL: The command failed due to a IPC failure.
 * @UNIQUE_RESPONSE_PASSTHROUGH: The command was not handled
 *
 * Response that a currently active instance of the application should
 * return to the caller which sent a command.
 */
typedef enum { /*< prefix=UNIQUE_RESPONSE >*/
  UNIQUE_RESPONSE_INVALID = 0,
  UNIQUE_RESPONSE_OK,
  UNIQUE_RESPONSE_CANCEL,
  UNIQUE_RESPONSE_FAIL,
  UNIQUE_RESPONSE_PASSTHROUGH
} UniqueResponse;

typedef struct _UniqueApp               UniqueApp;
typedef struct _UniqueAppPrivate        UniqueAppPrivate;
typedef struct _UniqueAppClass          UniqueAppClass;

/**
 * UniqueApp:
 *
 * The base class for every single instance application. The #UniqueApp
 * structure contains only private data and should be manipulated only
 * with the provided functions.
 */
struct _UniqueApp
{
  /*< private >*/
  GObject parent_instance;

  UniqueAppPrivate *priv;
};

/**
 * UniqueAppClass:
 * @message_received: Signal class closure for the UniqueApp::message_received
 *   signal.
 *
 * Base class for every single instance application.
 */
struct _UniqueAppClass
{
  /*< private >*/
  GObjectClass parent_class;

  /*< public >*/
  UniqueResponse (* message_received) (UniqueApp         *app,
                                       gint               command,
                                       UniqueMessageData *message_data,
                                       guint              time_);
  
  /*< private >*/
  /* padding */
  void (*_unique_reserved1) (void);
  void (*_unique_reserved2) (void);
  void (*_unique_reserved3) (void);
  void (*_unique_reserved4) (void);
};

GType          unique_app_get_type            (void) G_GNUC_CONST;

UniqueApp *    unique_app_new                 (const gchar       *name,
                                               const gchar       *startup_id);
UniqueApp *    unique_app_new_with_commands   (const gchar       *name,
                                               const gchar       *startup_id,
                                               const gchar       *first_command_name,
                                               ...) G_GNUC_NULL_TERMINATED;
void           unique_app_add_command         (UniqueApp         *app,
                                               const gchar       *command_name,
                                               gint               command_id);
void           unique_app_watch_window        (UniqueApp         *app,
                                               GtkWindow         *window);

gboolean       unique_app_is_running          (UniqueApp         *app);
UniqueResponse unique_app_send_message        (UniqueApp         *app,
                                               gint               command_id,
                                               UniqueMessageData *message_data);

G_END_DECLS

#endif /* __UNIQUE_APP_H__ */