/usr/include/nih-dbus/dbus_proxy.h is in libnih-dbus-dev 1.0.3-6ubuntu2.
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 | /* libnih
*
* Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
* Copyright © 2009 Canonical Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2, as
* published by the Free Software Foundation.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef NIH_DBUS_PROXY_H
#define NIH_DBUS_PROXY_H
#include <nih/macros.h>
#include <limits.h>
#include <dbus/dbus.h>
#include <nih-dbus/dbus_interface.h>
/**
* NIH_DBUS_TIMEOUT_DEFAULT:
*
* This macro expands to the timeout value used by D-Bus to mean the
* default timeout (25s).
**/
#define NIH_DBUS_TIMEOUT_DEFAULT -1
/**
* NIH_DBUS_TIMEOUT_NEVER:
*
* This macro expands to the timeout value used by D-Bus to mean that
* the call should never timeout.
**/
#define NIH_DBUS_TIMEOUT_NEVER INT_MAX
/**
* NihDBusLostHandler:
* @data: data pointer passed to nih_dbus_proxy_new(),
* @proxy: proxy object.
*
* The D-Bus Lost Handler function is called when a proxied remote object
* is no longer available, due to the owner of the name being changed or
* leaving the bus.
*
* A common activity is to free the proxy.
**/
typedef void (*NihDBusLostHandler) (void *data, NihDBusProxy *proxy);
/**
* NihDBusSignalHandler:
* @data: data pointer passed to nih_dbus_proxy_new(),
* @message: NihDBusMessage context for signal arguments.
*
* A D-Bus Signal Handler is called when the expected signal is emitted
* and caught by the signal filter function, generally they will be called
* with additional arguments representing the demarshalled data from the
* signal itself.
**/
typedef void (*NihDBusSignalHandler) (void *data, NihDBusMessage *message,
...);
/**
* NihDBusProxy:
* @connection: associated connection,
* @name: D-Bus name of object owner,
* @owner: actual unique D-Bus owner,
* @path: path of object,
* @auto_start: whether method calls should auto-start the service,
* @lost_handler: handler to call when the proxied object is lost,
* @data: data to pass to handler functions.
*
* Proxy objects represent a remote D-Bus object accessible over the bus.
* The primary purpose of this object is to combine the three elements
* of data that uniquely identify that remote object: the connection,
* the bus name (either well known or unique) and the path.
*
* @name may be NULL for peer-to-peer D-Bus connections.
*
* @auto_start is an advisory flag for method calls only, it is used by
* nih-dbus-tool generated method calls.
*
* Proxies are not generally bound to the life-time of the connection or
* the remote object, thus there may be periods when functions will fail
* or signal filter functions left dormant due to unavailability of the
* remote object or even cease permanently when the bus connection is
* disconnected.
*
* Passing a @lost_handler function means that @name will be tracked on
* the bus. Should the owner of @name change @lost_handler will be called
* to allow clean-up of the proxy.
**/
struct nih_dbus_proxy {
DBusConnection * connection;
char * name;
char * owner;
char * path;
int auto_start;
NihDBusLostHandler lost_handler;
void * data;
};
/**
* NihDBusProxySignal:
* @proxy: proxy structure,
* @interface: signal interface definition,
* @signal: signal definition,
* @handler: signal handler function,
* @data: data to pass to @handler function.
*
* This structure represents a connected signal handler @handler which
* should be run when a matching signal @signal on interface @interface
* is emitted by a proxied object @proxied.
*
* @name may be NULL for peer-to-peer D-Bus connections.
*
* Proxied signals are bound to the life cycle of @proxy.
**/
struct nih_dbus_proxy_signal {
NihDBusProxy * proxy;
const NihDBusInterface *interface;
const NihDBusSignal * signal;
NihDBusSignalHandler handler;
void * data;
};
NIH_BEGIN_EXTERN
NihDBusProxy * nih_dbus_proxy_new (const void *parent,
DBusConnection *connection,
const char *name, const char *path,
NihDBusLostHandler lost_handler,
void *data)
__attribute__ ((warn_unused_result));
NihDBusProxySignal *nih_dbus_proxy_connect (NihDBusProxy *proxy,
const NihDBusInterface *interface,
const char *name,
NihDBusSignalHandler handler,
void *data)
__attribute__ ((warn_unused_result));
NIH_END_EXTERN
#endif /* NIH_DBUS_PROXY_H */
|