本文整理汇总了C++中dbus_connection_ref函数的典型用法代码示例。如果您正苦于以下问题:C++ dbus_connection_ref函数的具体用法?C++ dbus_connection_ref怎么用?C++ dbus_connection_ref使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dbus_connection_ref函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: new_connection_cb
static void
new_connection_cb (DBusServer * server,
DBusConnection* connection,
gpointer user_data)
{
dbus_int32_t slot = -1;
GObject * object;
if (!dbus_connection_allocate_data_slot (&slot))
{
g_warning ("error allocating data slot for DBusConnection");
dbus_connection_close (connection);
return;
}
dbus_connection_ref (connection);
dbus_connection_set_allow_anonymous (connection, TRUE);
dbus_connection_setup_with_g_main (connection, NULL);
object = g_object_new (p2p_object_get_type (), NULL);
dbus_g_connection_register_g_object (dbus_connection_get_g_connection (connection),
"/", object);
dbus_connection_set_data (connection, slot,
object, g_object_unref);
}
开发者ID:herzi,项目名称:p2p-dbus,代码行数:25,代码来源:server.c
示例2: io_handler_dispatch
static gboolean
io_handler_dispatch (GIOChannel *source, GIOCondition condition, gpointer data)
{
IOHandler *handler = data;
guint dbus_condition = 0;
DBusConnection *connection = handler->cs->connection;
if (connection)
dbus_connection_ref (connection);
if (condition & G_IO_IN)
dbus_condition |= DBUS_WATCH_READABLE;
if (condition & G_IO_OUT)
dbus_condition |= DBUS_WATCH_WRITABLE;
if (condition & G_IO_ERR)
dbus_condition |= DBUS_WATCH_ERROR;
if (condition & G_IO_HUP)
dbus_condition |= DBUS_WATCH_HANGUP;
/* Note that we don't touch the handler after this, because
* dbus may have disabled the watch and thus killed the
* handler.
*/
dbus_watch_handle (handler->watch, dbus_condition);
handler = NULL;
if (connection)
dbus_connection_unref (connection);
return TRUE;
}
开发者ID:TheCoffeMaker,项目名称:Mate-Desktop-Environment,代码行数:31,代码来源:egg-dbus.c
示例3: __connline_context_new
struct connline_context *connline_open(enum connline_bearer bearer_type,
bool background_connection,
connline_callback_f callback,
void *user_data)
{
struct connline_context *context;
__connline_open_f _connline_open;
if (is_connline_initialized() == false)
return NULL;
context = __connline_context_new();
if (context == NULL)
return NULL;
context->bearer_type = bearer_type;
context->background_connection = background_connection;
context->event_callback = callback;
context->user_data = user_data;
context->dbus_cnx = dbus_connection_ref(dbus_cnx);
if (is_backend_up() == false)
return context;
_connline_open = connection_backend->__connline_open;
_connline_open(context);
return context;
}
开发者ID:connectivity,项目名称:connline,代码行数:29,代码来源:connline.c
示例4: dbus_connection_ref
DBusConnection *manager_dbus_get_connection(void)
{
if (connection == NULL)
return NULL;
return dbus_connection_ref(connection);
}
开发者ID:Fiend90,项目名称:obex,代码行数:7,代码来源:manager.c
示例5: _new_connection
static void
_new_connection (DBusServer *server,
DBusConnection *connection,
void *data)
{
ServiceData *svc = (ServiceData *)data;
DBusObjectPathVTable vt = {
_unregister_handler,
_handle_message,
NULL, NULL, NULL, NULL
};
rb_debug ("new connection to metadata service");
/* don't allow more than one connection at a time */
if (svc->connection) {
rb_debug ("metadata service already has a client. go away.");
return;
}
dbus_connection_register_object_path (connection,
RB_METADATA_DBUS_OBJECT_PATH,
&vt,
svc);
dbus_connection_ref (connection);
dbus_connection_setup_with_g_main (connection,
g_main_loop_get_context (svc->loop));
if (!svc->external)
dbus_connection_set_exit_on_disconnect (connection, TRUE);
}
开发者ID:AdamZ,项目名称:rhythmbox-magnatune,代码行数:30,代码来源:rb-metadata-dbus-service.c
示例6: ibus_connection_set_connection
void
ibus_connection_set_connection (IBusConnection *connection, DBusConnection *dbus_connection, gboolean shared)
{
gboolean result;
IBusConnectionPrivate *priv;
g_assert (IBUS_IS_CONNECTION (connection));
g_assert (dbus_connection != NULL);
g_assert (dbus_connection_get_is_connected (dbus_connection));
priv = IBUS_CONNECTION_GET_PRIVATE (connection);
g_assert (priv->connection == NULL);
priv->connection = dbus_connection_ref (dbus_connection);
priv->shared = shared;
dbus_connection_set_data (priv->connection, _get_slot(), connection, NULL);
dbus_connection_set_unix_user_function (priv->connection,
(DBusAllowUnixUserFunction) _connection_allow_unix_user_cb,
connection, NULL);
result = dbus_connection_add_filter (priv->connection,
(DBusHandleMessageFunction) _connection_handle_message_cb,
connection, NULL);
ibus_dbus_connection_setup (priv->connection);
g_warn_if_fail (result);
}
开发者ID:XueWei,项目名称:ibus,代码行数:29,代码来源:ibusconnection.c
示例7: g_new0
static struct serial_device *create_serial_device(DBusConnection *conn,
const char *path, bdaddr_t *src,
bdaddr_t *dst)
{
struct serial_device *device;
device = g_new0(struct serial_device, 1);
device->conn = dbus_connection_ref(conn);
bacpy(&device->dst, dst);
bacpy(&device->src, src);
device->path = g_strdup(path);
if (!g_dbus_register_interface(conn, path,
SERIAL_PORT_INTERFACE,
port_methods, NULL, NULL,
device, path_unregister)) {
error("D-Bus failed to register %s interface",
SERIAL_PORT_INTERFACE);
serial_device_free(device);
return NULL;
}
debug("Registered interface %s on path %s",
SERIAL_PORT_INTERFACE, path);
return device;
}
开发者ID:Mcjesus15,项目名称:Zio_Other,代码行数:27,代码来源:port.c
示例8: g_new0
static struct generic_data *object_path_ref(DBusConnection *connection,
const char *path)
{
struct generic_data *data;
if (dbus_connection_get_object_path_data(connection, path,
(void *) &data) == TRUE) {
if (data != NULL) {
data->refcount++;
return data;
}
}
data = g_new0(struct generic_data, 1);
data->conn = dbus_connection_ref(connection);
data->path = g_strdup(path);
data->refcount = 1;
data->introspect = g_strdup(DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE "<node></node>");
if (!dbus_connection_register_object_path(connection, path,
&generic_table, data)) {
g_free(data->introspect);
g_free(data);
return NULL;
}
invalidate_parent_data(connection, path);
add_interface(data, DBUS_INTERFACE_INTROSPECTABLE, introspect_methods,
NULL, NULL, data, NULL);
return data;
}
开发者ID:dmp0x7c5,项目名称:gobexfuse,代码行数:34,代码来源:object.c
示例9: add_watch
static dbus_bool_t add_watch(DBusWatch *watch, void *data)
{
GIOCondition cond = G_IO_HUP | G_IO_ERR;
DBusConnection *conn = data;
struct watch_info *info;
int fd, flags;
if (!dbus_watch_get_enabled(watch))
return TRUE;
info = g_new(struct watch_info, 1);
fd = dbus_watch_get_unix_fd(watch);
info->io = g_io_channel_unix_new(fd);
info->conn = dbus_connection_ref(conn);
dbus_watch_set_data(watch, info, NULL);
flags = dbus_watch_get_flags(watch);
if (flags & DBUS_WATCH_READABLE) cond |= G_IO_IN;
if (flags & DBUS_WATCH_WRITABLE) cond |= G_IO_OUT;
info->watch_id = g_io_add_watch(info->io, cond, watch_func, watch);
return TRUE;
}
开发者ID:wenhann,项目名称:chromiumos,代码行数:27,代码来源:mainloop.c
示例10: debug
static DBusMessage *remove_sdp_record(DBusConnection *conn,
DBusMessage *msg, void *data)
{
struct service_adapter *serv_adapter = data;
tDTUN_METHOD_DM_REMOVE_SDP_REC_EX method;
dbus_uint32_t handle;
const char *sender;
debug( "SDP: remove_sdp_record conn=%p", conn );
if (dbus_message_get_args(msg, NULL, DBUS_TYPE_UINT32, &handle,
DBUS_TYPE_INVALID) == FALSE)
return NULL;
sender = dbus_message_get_sender(msg);
g_conn = dbus_connection_ref(conn);
g_msg = dbus_message_ref(msg);
memset(&method,0, sizeof(method));
method.handle = handle;
method.hdr.len= sizeof(handle);
method.hdr.id = DTUN_METHOD_SDP_REMOVE_RECORD;
dtun_client_call_method((tDTUN_DEVICE_METHOD *)&method);
return NULL;
}
开发者ID:AlexStephen,项目名称:android_device_samsung_totoro,代码行数:27,代码来源:dtun_sdp.c
示例11: avdtp_get
static DBusMessage *sink_connect(DBusConnection *conn,
DBusMessage *msg, void *data)
{
struct audio_device *dev = data;
struct sink *sink = dev->sink;
struct pending_request *pending;
if (!sink->session)
sink->session = avdtp_get(&dev->src, &dev->dst);
if (!sink->session)
return btd_error_failed(msg, "Unable to get a session");
if (sink->connect || sink->disconnect)
return btd_error_busy(msg);
if (sink->stream_state >= AVDTP_STATE_OPEN)
return btd_error_already_connected(msg);
if (!sink_setup_stream(sink, NULL))
return btd_error_failed(msg, "Failed to create a stream");
dev->auto_connect = FALSE;
pending = sink->connect;
pending->conn = dbus_connection_ref(conn);
pending->msg = dbus_message_ref(msg);
DBG("stream creation in progress");
return NULL;
}
开发者ID:0xD34D,项目名称:external_bluetooth_bluez,代码行数:33,代码来源:sink.c
示例12: btd_error_not_connected
static DBusMessage *sink_disconnect(DBusConnection *conn,
DBusMessage *msg, void *data)
{
struct audio_device *device = data;
struct sink *sink = device->sink;
struct pending_request *pending;
int err;
if (!sink->session)
return btd_error_not_connected(msg);
if (sink->connect || sink->disconnect)
return btd_error_busy(msg);
if (sink->stream_state < AVDTP_STATE_OPEN) {
DBusMessage *reply = dbus_message_new_method_return(msg);
if (!reply)
return NULL;
avdtp_unref(sink->session);
sink->session = NULL;
return reply;
}
err = avdtp_close(sink->session, sink->stream, FALSE);
if (err < 0)
return btd_error_failed(msg, strerror(-err));
pending = g_new0(struct pending_request, 1);
pending->conn = dbus_connection_ref(conn);
pending->msg = dbus_message_ref(msg);
sink->disconnect = pending;
return NULL;
}
开发者ID:MI2S,项目名称:android_external_bluetooth_bluez,代码行数:34,代码来源:sink.c
示例13: check_dbus_listeners
void check_dbus_listeners(fd_set *rset, fd_set *wset, fd_set *eset)
{
DBusConnection *connection = (DBusConnection *)daemon->dbus;
struct watch *w;
for (w = daemon->watches; w; w = w->next)
if (dbus_watch_get_enabled(w->watch))
{
unsigned int flags = 0;
int fd = dbus_watch_get_unix_fd(w->watch);
if (FD_ISSET(fd, rset))
flags |= DBUS_WATCH_READABLE;
if (FD_ISSET(fd, wset))
flags |= DBUS_WATCH_WRITABLE;
if (FD_ISSET(fd, eset))
flags |= DBUS_WATCH_ERROR;
if (flags != 0)
dbus_watch_handle(w->watch, flags);
}
if (connection)
{
dbus_connection_ref (connection);
while (dbus_connection_dispatch (connection) == DBUS_DISPATCH_DATA_REMAINS);
dbus_connection_unref (connection);
}
}
开发者ID:NieHao,项目名称:wl500g,代码行数:31,代码来源:dbus.c
示例14: add_cancel_ownership_to_transaction
static dbus_bool_t
add_cancel_ownership_to_transaction (BusTransaction *transaction,
BusService *service,
BusOwner *owner)
{
OwnershipCancelData *d;
d = dbus_new (OwnershipCancelData, 1);
if (d == NULL)
return FALSE;
d->service = service;
d->owner = owner;
if (!bus_transaction_add_cancel_hook (transaction, cancel_ownership, d,
free_ownership_cancel_data))
{
dbus_free (d);
return FALSE;
}
bus_service_ref (d->service);
bus_owner_ref (owner);
dbus_connection_ref (d->owner->conn);
return TRUE;
}
开发者ID:freedesktop-unofficial-mirror,项目名称:dbus__dbus-qt3,代码行数:27,代码来源:services.c
示例15: input_manager_init
int input_manager_init(DBusConnection *conn, GKeyFile *config)
{
GError *err = NULL;
if (config) {
idle_timeout = g_key_file_get_integer(config, "General",
"IdleTimeout", &err);
if (err) {
DBG("input.conf: %s", err->message);
g_error_free(err);
}
}
connection = dbus_connection_ref(conn);
#ifndef BT_ALT_STACK
btd_register_adapter_driver(&input_server_driver);
#endif
btd_register_device_driver(&input_hid_driver);
#ifndef BT_ALT_STACK
btd_register_device_driver(&input_headset_driver);
#endif
return 0;
}
开发者ID:sloanyang,项目名称:android_external_bluetooth_bluez,代码行数:26,代码来源:manager.c
示例16: g_new0
static struct input_device *input_device_new(DBusConnection *conn,
struct btd_device *device, const char *path,
const bdaddr_t *src, const bdaddr_t *dst,
const uint32_t handle)
{
struct input_device *idev;
char name[249], src_addr[18], dst_addr[18];
idev = g_new0(struct input_device, 1);
bacpy(&idev->src, src);
bacpy(&idev->dst, dst);
idev->device = btd_device_ref(device);
idev->path = g_strdup(path);
idev->conn = dbus_connection_ref(conn);
idev->handle = handle;
ba2str(src, src_addr);
ba2str(dst, dst_addr);
if (read_device_name(src_addr, dst_addr, name) == 0)
idev->name = g_strdup(name);
if (g_dbus_register_interface(conn, idev->path, INPUT_DEVICE_INTERFACE,
device_methods, device_signals, NULL,
idev, device_unregister) == FALSE) {
error("Failed to register interface %s on path %s",
INPUT_DEVICE_INTERFACE, path);
input_device_free(idev);
return NULL;
}
debug("Registered interface %s on path %s",
INPUT_DEVICE_INTERFACE, idev->path);
return idev;
}
开发者ID:pocketbook-free,项目名称:bluez-4.62,代码行数:35,代码来源:device.c
示例17: avdtp_get
static DBusMessage *sink_connect(DBusConnection *conn,
DBusMessage *msg, void *data)
{
struct audio_device *dev = data;
struct sink *sink = dev->sink;
struct pending_request *pending;
if (!sink->session)
sink->session = avdtp_get(&dev->src, &dev->dst);
if (!sink->session)
return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
"Unable to get a session");
if (sink->connect || sink->disconnect)
return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed",
"%s", strerror(EBUSY));
if (sink->state >= AVDTP_STATE_OPEN)
return g_dbus_create_error(msg, ERROR_INTERFACE
".AlreadyConnected",
"Device Already Connected");
pending = g_new0(struct pending_request, 1);
pending->conn = dbus_connection_ref(conn);
pending->msg = dbus_message_ref(msg);
sink->connect = pending;
avdtp_discover(sink->session, discovery_complete, sink);
debug("stream creation in progress");
return NULL;
}
开发者ID:Jeanlst,项目名称:Onlive-Source-Backup,代码行数:34,代码来源:sink.c
示例18: g_new0
static struct generic_data *object_path_ref(DBusConnection *connection,
const char *path)
{
struct generic_data *data;
if (dbus_connection_get_object_path_data(connection, path,
(void *) &data) == TRUE) {
if (data != NULL) {
data->refcount++;
return data;
}
}
data = g_new0(struct generic_data, 1);
data->conn = dbus_connection_ref(connection);
data->path = g_strdup(path);
data->refcount = 1;
LOG("object_path_ref(data->conn:%p,data->path:%s)",
data->conn,data->path);
if (!dbus_connection_register_object_path(connection, path,
&generic_table, data)) {
g_free(data);
return NULL;
}
return data;
}
开发者ID:marttipiirainen,项目名称:provisioning-service,代码行数:27,代码来源:provisioning-receiver.c
示例19: proxy_register
int proxy_register(DBusConnection *conn, struct btd_adapter *btd_adapter)
{
struct serial_adapter *adapter;
const char *path;
adapter = find_adapter(adapters, btd_adapter);
if (adapter)
return -EINVAL;
adapter = g_new0(struct serial_adapter, 1);
adapter->conn = dbus_connection_ref(conn);
adapter->btd_adapter = btd_adapter_ref(btd_adapter);
path = adapter_get_path(btd_adapter);
if (!g_dbus_register_interface(conn, path,
SERIAL_MANAGER_INTERFACE,
manager_methods, manager_signals, NULL,
adapter, manager_path_unregister)) {
error("Failed to register %s interface to %s",
SERIAL_MANAGER_INTERFACE, path);
return -1;
}
register_stored(adapter);
adapters = g_slist_append(adapters, adapter);
debug("Registered interface %s on path %s",
SERIAL_MANAGER_INTERFACE, path);
return 0;
}
开发者ID:writefaruq,项目名称:bluez-oob,代码行数:33,代码来源:proxy.c
示例20: server_init
int server_init(DBusConnection *conn, gboolean secure)
{
security = secure;
connection = dbus_connection_ref(conn);
return 0;
}
开发者ID:heinervdm,项目名称:bluez,代码行数:7,代码来源:server.c
注:本文中的dbus_connection_ref函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论