• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ dbus_connection_send函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中dbus_connection_send函数的典型用法代码示例。如果您正苦于以下问题:C++ dbus_connection_send函数的具体用法?C++ dbus_connection_send怎么用?C++ dbus_connection_send使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了dbus_connection_send函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: server_broadcast

static void server_broadcast(LassiServer *ls, DBusMessage *m, LassiConnection *except) {
    GList *i;

    g_assert(ls);
    g_assert(m);

    for (i = ls->connections; i; i = i->next) {
        dbus_bool_t b;
        LassiConnection *lc = i->data;
        DBusMessage *n;

        if (lc == except || !lc->id)
            continue;

        n = dbus_message_copy(m);
        g_assert(n);
        b = dbus_connection_send(lc->dbus_connection, n, NULL);
        g_assert(b);
        dbus_message_unref(n);
    }
}
开发者ID:herzi,项目名称:mango-lassi,代码行数:21,代码来源:lassi-server.c


示例2: gkd_secret_service_emit_collection_deleted

void
gkd_secret_service_emit_collection_deleted (GkdSecretService *self,
                                            const gchar *collection_path)
{
	DBusMessage *message;

	g_return_if_fail (GKD_SECRET_IS_SERVICE (self));
	g_return_if_fail (collection_path != NULL);

	message = dbus_message_new_signal (SECRET_SERVICE_PATH,
	                                   SECRET_SERVICE_INTERFACE,
	                                   "CollectionDeleted");
	dbus_message_append_args (message, DBUS_TYPE_OBJECT_PATH, &collection_path,
	                          DBUS_TYPE_INVALID);

	if (!dbus_connection_send (self->connection, message, NULL))
		g_return_if_reached ();
	dbus_message_unref (message);

	emit_collections_properties_changed (self);
}
开发者ID:rbeasley,项目名称:gnome-keyring,代码行数:21,代码来源:gkd-secret-service.c


示例3: dbusSendMessage

/**
 * @internal
 * Send Elektra's D-Bus message.
 *
 * @param signalName signal name
 * @param keyName    key name
 */
static void dbusSendMessage (const char * signalName, const char * keyName)
{
	DBusMessage * message;
	const char * interface = "org.libelektra";
	const char * path = "/org/libelektra/configuration";

	DBusConnection * connection = getDbusConnection (testBusType);
	exit_if_fail (connection != NULL, "could not get bus connection");

	message = dbus_message_new_signal (path, interface, signalName);
	exit_if_fail (message, "could not allocate dbus message");

	exit_if_fail (dbus_message_append_args (message, DBUS_TYPE_STRING, &keyName, DBUS_TYPE_INVALID), "could not add message arguments");

	dbus_connection_send (connection, message, NULL);

	dbus_message_unref (message);
	dbus_connection_unref (connection);

	return;
}
开发者ID:waht,项目名称:libelektra,代码行数:28,代码来源:testmod_dbusrecv.c


示例4: reply_to_suspend

void
reply_to_suspend(DBusMessage* msg, DBusConnection* conn)
{
	DBusMessage* reply;
	char path[128];
	FILE* f = fopen(SUSPEND_FILE, "w");

	reply = dbus_message_new_method_return(msg);

	if (!f) {
		fprintf(stderr, "Unable to open path for writing\n");
		return;
	}

	snprintf(path, sizeof(path), "mem\n");

	fprintf(f, path);
	fclose(f);

	dbus_connection_send(conn, reply, NULL);
}
开发者ID:fgau,项目名称:cneo,代码行数:21,代码来源:cneod.c


示例5: dbus_message_new_signal

int
NotificationServer::notifySettingChanged(const std::string pkgId, const std::string privacyId)
{
	if (!m_initialized)
		return PRIV_FLTR_ERROR_INVALID_STATE;

	char* pPkgId = const_cast <char*> (pkgId.c_str());
	char* pPrivacyId = const_cast <char*> (privacyId.c_str());

	DBusMessage* pMessage = dbus_message_new_signal(DBUS_PATH.c_str(), DBUS_SIGNAL_INTERFACE.c_str(), DBUS_SIGNAL_SETTING_CHANGED.c_str());
	TryReturn(pMessage != NULL, PRIV_FLTR_ERROR_IPC_ERROR, , "dbus_message_new_signal");

	dbus_bool_t r;
	r = dbus_message_append_args(pMessage,
		DBUS_TYPE_STRING, &pPkgId,
		DBUS_TYPE_STRING, &pPrivacyId,
		DBUS_TYPE_INVALID);
	TryReturn(r, PRIV_FLTR_ERROR_IPC_ERROR, , "dbus_message_append_args");

	r = dbus_connection_send(m_pDBusConnection, pMessage, NULL);
	TryReturn(r, PRIV_FLTR_ERROR_IPC_ERROR, dbus_message_unref(pMessage);, "dbus_connection_send");
开发者ID:tizenorg,项目名称:platform.core.security.privacy-guard,代码行数:21,代码来源:NotificationServer.cpp


示例6: launcher_logind_pause_device_complete

static void
launcher_logind_pause_device_complete(struct launcher_logind *wl, uint32_t major,
				    uint32_t minor)
{
	DBusMessage *m;
	bool b;

	m = dbus_message_new_method_call("org.freedesktop.login1",
					 wl->spath,
					 "org.freedesktop.login1.Session",
					 "PauseDeviceComplete");
	if (m) {
		b = dbus_message_append_args(m,
					     DBUS_TYPE_UINT32, &major,
					     DBUS_TYPE_UINT32, &minor,
					     DBUS_TYPE_INVALID);
		if (b)
			dbus_connection_send(wl->dbus, m, NULL);
		dbus_message_unref(m);
	}
}
开发者ID:ChristophHaag,项目名称:weston,代码行数:21,代码来源:launcher-logind.c


示例7: stream_setup_retry

static gboolean stream_setup_retry(gpointer user_data)
{
	struct sink *sink = user_data;
	struct pending_request *pending = sink->connect;

	if (sink->state >= AVDTP_STATE_OPEN) {
		DBusMessage *reply;
		debug("Stream successfully created, after XCASE connect:connect");
		reply = dbus_message_new_method_return(pending->msg);
		dbus_connection_send(pending->conn, reply, NULL);
		dbus_message_unref(reply);
	} else {
		debug("Stream setup failed, after XCASE connect:connect");
		error_failed(pending->conn, pending->msg, "Stream setup failed");
	}

	sink->connect = NULL;
	pending_request_free(pending);

	return FALSE;
}
开发者ID:Jeanlst,项目名称:Onlive-Source-Backup,代码行数:21,代码来源:sink.c


示例8: main

/* This test outputs TAP syntax: http://testanything.org/ */
int
main (int argc, char *argv[])
{
    long start_tv_sec, start_tv_usec;
    long end_tv_sec, end_tv_usec;
    int i;
    DBusMessage *method;
    DBusConnection *conn;
    DBusError error;

    printf ("# Testing pending call timeouts\n");

    dbus_error_init (&error);

    conn = dbus_bus_get (DBUS_BUS_SESSION, &error);

    /* run 100 times to make sure */
    for (i = 0; i < 100; i++)
    {
        long delta;

        _dbus_get_monotonic_time (&start_tv_sec, &start_tv_usec);
        _run_iteration (conn);
        _dbus_get_monotonic_time (&end_tv_sec, &end_tv_usec);

        /* we just care about seconds */
        delta = end_tv_sec - start_tv_sec;
        printf ("ok %d - %lis\n", i + 1, delta);
    }

    method = dbus_message_new_method_call ("org.freedesktop.TestSuiteEchoService",
                                           "/org/freedesktop/TestSuite",
                                           "org.freedesktop.TestSuite",
                                           "Exit");
    dbus_connection_send (conn, method, NULL);
    dbus_message_unref (method);

    printf ("# Testing completed\n1..%d\n", i);
    exit (0);
}
开发者ID:rhabacker,项目名称:dbus,代码行数:41,代码来源:test-pending-call-timeout.c


示例9: reset_wlan_module

static void reset_wlan_module(void)
{
    DBusError        err  = DBUS_ERROR_INIT;
    DBusConnection  *conn = 0;
    DBusMessage     *req  = NULL;
    const char      *unit = WLAN_SYSTEMD_UNIT;
    const char      *mode = "ignore-requirements";

    dsme_log(LOG_DEBUG, "wlanloader: Resetting WLAN");

    if (!(conn = dsme_dbus_get_connection(&err)))
    {
	dsme_log(LOG_ERR, "wlanloader: system bus connect: %s: %s",
		 err.name, err.message);
        goto cleanup;
    }

    req = dbus_message_new_method_call("org.freedesktop.systemd1",
                               "/org/freedesktop/systemd1",
                               "org.freedesktop.systemd1.Manager",
                               "RestartUnit");
    if (!req)
        goto cleanup;

    if (!dbus_message_append_args(req,
                            DBUS_TYPE_STRING, &unit,
                            DBUS_TYPE_STRING, &mode,
                            DBUS_TYPE_INVALID)) {
        goto cleanup;
    }

    if (!dbus_connection_send(conn, req, NULL))
        goto cleanup;

cleanup:

    if (req) dbus_message_unref(req);
    if (conn) dbus_connection_unref(conn);
    dbus_error_free(&err);
}
开发者ID:faenil,项目名称:dsme,代码行数:40,代码来源:wlanloader.c


示例10: database_handle_remove_notify

static void
database_handle_remove_notify (DBusConnection    *conn,
			       DBusMessage       *message,
			       GConfDatabase *db)
{
  gchar *namespace_section;
  DBusMessage *reply;
  const char *sender;
  NotificationData *notification;
  ListeningClientData *client;
  
  if (!gconfd_dbus_get_message_args (conn, message,
				     DBUS_TYPE_STRING, &namespace_section,
				     DBUS_TYPE_INVALID)) 
    return;

  sender = dbus_message_get_sender (message);
  
  notification = g_hash_table_lookup (db->notifications, namespace_section);

  client = g_hash_table_lookup (db->listening_clients, sender);
  if (client) {
    client->nr_of_notifications--;
    
    if (client->nr_of_notifications == 0) {
      database_remove_listening_client (db, client);
    }
  }
    
  /* Notification can be NULL if the client and server get out of sync. */
  if (notification == NULL || !database_remove_notification_data (db, notification, sender))
    {
      gconf_log (GCL_DEBUG, _("Notification on %s doesn't exist"),
                 namespace_section);
    }
  
  reply = dbus_message_new_method_return (message);
  dbus_connection_send (conn, reply, NULL);
  dbus_message_unref (reply);
}
开发者ID:SpOlErOk38,项目名称:gconf-dbus,代码行数:40,代码来源:gconf-database-dbus.c


示例11: complete_dbus_request

static bool complete_dbus_request(DBusMessage *message,
		int *sv, struct ucred *rcred, struct ucred *vcred)
{
	char buf[1];

	if (!dbus_connection_send(server_conn, message, NULL)) {
		nih_error("%s: failed to send dbus message", __func__);
		dbus_message_unref(message);
		return false;
	}
	dbus_connection_flush(server_conn);
	dbus_message_unref(message);

	if (proxyrecv(sv[0], buf, 1) != 1) {
		nih_error("%s: Error getting reply from server over socketpair",
			  __func__);
		return false;
	}
	if (send_creds(sv[0], rcred)) {
		nih_error("%s: Error sending pid over SCM_CREDENTIAL",
			__func__);
		return false;
	}

	if (!vcred) // this request only requires one scm_credential
		return true;

	if (proxyrecv(sv[0], buf, 1) != 1) {
		nih_error("%s: Error getting reply from server over socketpair",
			__func__);
		return false;
	}
	if (send_creds(sv[0], vcred)) {
		nih_error("%s: Error sending pid over SCM_CREDENTIAL",
			__func__);
		return false;
	}

	return true;
}
开发者ID:smemsh,项目名称:cgmanager,代码行数:40,代码来源:cgmanager-proxy.c


示例12: profile_handler

static DBusHandlerResult profile_handler(DBusConnection *c, DBusMessage *m, void *userdata) {
    pa_bluetooth_backend *b = userdata;
    DBusMessage *r = NULL;
    const char *path, *interface, *member;

    pa_assert(b);

    path = dbus_message_get_path(m);
    interface = dbus_message_get_interface(m);
    member = dbus_message_get_member(m);

    pa_log_debug("dbus: path=%s, interface=%s, member=%s", path, interface, member);

    if (!pa_streq(path, HSP_AG_PROFILE) && !pa_streq(path, HSP_HS_PROFILE))
        return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;

    if (dbus_message_is_method_call(m, "org.freedesktop.DBus.Introspectable", "Introspect")) {
        const char *xml = PROFILE_INTROSPECT_XML;

        pa_assert_se(r = dbus_message_new_method_return(m));
        pa_assert_se(dbus_message_append_args(r, DBUS_TYPE_STRING, &xml, DBUS_TYPE_INVALID));

    } else if (dbus_message_is_method_call(m, BLUEZ_PROFILE_INTERFACE, "Release")) {
        pa_log_debug("Release not handled");
        return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
    } else if (dbus_message_is_method_call(m, BLUEZ_PROFILE_INTERFACE, "RequestDisconnection")) {
        r = profile_request_disconnection(c, m, userdata);
    } else if (dbus_message_is_method_call(m, BLUEZ_PROFILE_INTERFACE, "NewConnection"))
        r = profile_new_connection(c, m, userdata);
    else
        return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;

    if (r) {
        pa_assert_se(dbus_connection_send(pa_dbus_connection_get(b->connection), r, NULL));
        dbus_message_unref(r);
    }

    return DBUS_HANDLER_RESULT_HANDLED;
}
开发者ID:plbossart,项目名称:pulseaudio,代码行数:39,代码来源:backend-native.c


示例13: lassi_server_key_event

int lassi_server_key_event(LassiServer *ls, unsigned key, gboolean is_press) {
    DBusMessage *n;
    dbus_bool_t b;

    if (!ls->active_connection)
        return -1;

    n = dbus_message_new_signal("/", LASSI_INTERFACE, "KeyEvent");
    g_assert(n);

    b = dbus_message_append_args(n, DBUS_TYPE_UINT32, &key, DBUS_TYPE_BOOLEAN, &is_press, DBUS_TYPE_INVALID);
    g_assert(b);

    b = dbus_connection_send(ls->active_connection->dbus_connection, n, NULL);
    g_assert(b);

    dbus_message_unref(n);

    dbus_connection_flush(ls->active_connection->dbus_connection);

    return 0;
}
开发者ID:herzi,项目名称:mango-lassi,代码行数:22,代码来源:lassi-server.c


示例14: emit_collections_properties_changed

static void
emit_collections_properties_changed (GkdSecretService *self)
{
	const gchar *iface = SECRET_SERVICE_INTERFACE;
	DBusMessage *message;
	DBusMessageIter array;
	DBusMessageIter iter;

	message = dbus_message_new_signal (SECRET_SERVICE_PATH,
	                                   DBUS_INTERFACE_PROPERTIES,
	                                   "PropertiesChanged");

	dbus_message_iter_init_append (message, &iter);
	dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &iface);
	service_append_all_properties (self, &iter);
	dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, "s", &array);
	dbus_message_iter_close_container (&iter, &array);

	if (!dbus_connection_send (self->connection, message, NULL))
		g_return_if_reached ();
	dbus_message_unref (message);
}
开发者ID:rbeasley,项目名称:gnome-keyring,代码行数:22,代码来源:gkd-secret-service.c


示例15: device_finish_sdp_transaction

void device_finish_sdp_transaction(struct audio_device *dev)
{
	char address[18], *addr_ptr = address;
	DBusMessage *msg;

	ba2str(&dev->dst, address);

	msg = dbus_message_new_method_call("org.bluez", dev->adapter_path,
						"org.bluez.Adapter",
						"FinishRemoteServiceTransaction");
	if (!msg) {
		error("Unable to allocate new method call");
		return;
	}

	dbus_message_append_args(msg, DBUS_TYPE_STRING, &addr_ptr,
				 DBUS_TYPE_INVALID);

	dbus_connection_send(dev->conn, msg, NULL);

	dbus_message_unref(msg);
}
开发者ID:Dopi,项目名称:JetPlatform_vendor_brcm,代码行数:22,代码来源:dtun_device.c


示例16: ibus_connection_send

gboolean
ibus_connection_send (IBusConnection *connection,
                      IBusMessage    *message)
{
    g_assert (IBUS_IS_CONNECTION (connection));
    g_assert (message != NULL);

    gboolean retval;
    IBusConnectionPrivate *priv;

    priv = IBUS_CONNECTION_GET_PRIVATE (connection);
    retval = dbus_connection_send (priv->connection, message, NULL);

    if (retval) {
        g_signal_emit (connection,
                       connection_signals[IBUS_MESSAGE_SENT],
                       0,
                       message);
    }

    return retval;
}
开发者ID:XueWei,项目名称:ibus,代码行数:22,代码来源:ibusconnection.c


示例17: my_test_peek_reply

int
my_test_peek_reply (NihDBusMessage *message,
                    const char *    value)
{
	DBusMessage *   reply;
	DBusMessageIter iter;

	nih_assert (message != NULL);
	nih_assert (value != NULL);

	/* If the sender doesn't care about a reply, don't bother wasting
	 * effort constructing and sending one.
	 */
	if (dbus_message_get_no_reply (message->message))
		return 0;

	/* Construct the reply message. */
	reply = dbus_message_new_method_return (message->message);
	if (! reply)
		return -1;

	dbus_message_iter_init_append (reply, &iter);

	/* Marshal a char * onto the message */
	if (! dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &value)) {
		dbus_message_unref (reply);
		return -1;
	}

	/* Send the reply, appending it to the outgoing queue. */
	if (! dbus_connection_send (message->connection, reply, NULL)) {
		dbus_message_unref (reply);
		return -1;
	}

	dbus_message_unref (reply);

	return 0;
}
开发者ID:Gladiel,项目名称:libnih,代码行数:39,代码来源:test_node_object_functions_standard.c


示例18: listen_for_signal

static void
listen_for_signal (const char *signal, const char **objects)
{
    DBusMessage     *msg      = NULL;
    const char      *empty[1] = { NULL };
    int              count;

    g_assert (volume_bus);
    g_assert (signal);

    msg = dbus_message_new_method_call (NULL,
                                        PULSE_CORE_PATH,
                                        PULSE_CORE_IF,
                                        LISTEN_FOR_METHOD);

    if (!msg)
        goto done;

    if (!objects)
        objects = empty;
    for (count = 0; objects[count]; count++);

    dbus_message_append_args (msg,
                              DBUS_TYPE_STRING, &signal,
                              DBUS_TYPE_ARRAY, DBUS_TYPE_OBJECT_PATH, &objects, count,
                              DBUS_TYPE_INVALID);


    if (dbus_connection_send (volume_bus, msg, NULL)) {
        int i;
        N_DEBUG (LOG_CAT "listen for signal %s", signal);
        for (i = 0; i < count; i++)
            N_DEBUG (LOG_CAT "- object path: %s", objects[i]);
    }

done:
    if (msg)
        dbus_message_unref (msg);
}
开发者ID:kjokinie,项目名称:ngfd,代码行数:39,代码来源:volume-controller.c


示例19: request_passkey_message

static DBusHandlerResult request_passkey_message(DBusConnection *conn,
                            DBusMessage *msg)
{
    DBusMessage *reply;
    DBusError derr;
    const char *device;
    char passkey[17];
    const char *psk = passkey;

    reply = dbus_message_new_method_return(msg);
    if (!reply)
        return DBUS_HANDLER_RESULT_NEED_MEMORY;

    dbus_error_init(&derr);
    if (!dbus_message_get_args(msg, &derr,
                DBUS_TYPE_OBJECT_PATH, &device,
                DBUS_TYPE_INVALID)) {
        fprintf(stderr, "%s", derr.message);
        dbus_error_free(&derr);
        return  error_message(conn, msg, "org.bluez.Error.Rejected",
                    "Wrong signature");
    }

    if (device)
        printf("Device: %s\n", device);

    memset(passkey, 0, sizeof(passkey));
    printf("Insert passkey >> ");
    scanf("%16s", passkey);

    dbus_message_append_args(reply,
            DBUS_TYPE_STRING, &psk,
                DBUS_TYPE_INVALID);

    dbus_connection_send(conn, reply, NULL);
    dbus_message_unref(reply);

    return DBUS_HANDLER_RESULT_HANDLED;
}
开发者ID:JoshuaPK,项目名称:bt2unix,代码行数:39,代码来源:c-simple-agent.c


示例20: E_WARNING

bool EdbusConnection::send(const EdbusMessage& content) {
	if(!dc || !dc->conn)
		return false;

	bool ret;
	dbus_uint32_t serial;

	DBusMessage* msg = content.to_dbus_message();
	if(!msg) {
		E_WARNING(E_STRLOC ": Can't convert to DBusMessage\n");
		return false;
	}

	if(!dbus_connection_send(dc->conn, msg, &serial)) {
		E_WARNING(E_STRLOC ": Message sending failed\n");
		ret = false;
	} else
		ret = true;

	dbus_connection_flush(dc->conn);
	return ret;
}
开发者ID:edeproject,项目名称:svn,代码行数:22,代码来源:EdbusConnection.cpp



注:本文中的dbus_connection_send函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ dbus_connection_send_with_reply函数代码示例发布时间:2022-05-30
下一篇:
C++ dbus_connection_ref函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap