本文整理汇总了C++中dbus_free函数的典型用法代码示例。如果您正苦于以下问题:C++ dbus_free函数的具体用法?C++ dbus_free怎么用?C++ dbus_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dbus_free函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: bus_data_free
static void
bus_data_free (void *data)
{
BusData *bd = data;
if (bd->is_well_known)
{
int i;
_DBUS_LOCK (bus);
/* We may be stored in more than one slot */
i = 0;
while (i < N_BUS_TYPES)
{
if (bus_connections[i] == bd->connection)
bus_connections[i] = NULL;
++i;
}
_DBUS_UNLOCK (bus);
}
dbus_free (bd->unique_name);
dbus_free (bd);
dbus_connection_free_data_slot (&bus_data_slot);
}
开发者ID:jameshilliard,项目名称:WECB-BH-GPL,代码行数:26,代码来源:dbus-bus.c
示例2: _dbus_user_info_free
/**
* Frees the members of info
* (but not info itself)
* @param info the user info struct
*/
void
_dbus_user_info_free (DBusUserInfo *info)
{
dbus_free (info->group_ids);
dbus_free (info->username);
dbus_free (info->homedir);
}
开发者ID:d-bus,项目名称:dbus,代码行数:12,代码来源:dbus-userdb.c
示例3: bus_data_free
static void
bus_data_free (void *data)
{
BusData *bd = data;
if (bd->is_well_known)
{
int i;
_DBUS_LOCK (bus);
/* We may be stored in more than one slot */
/* This should now be impossible - these slots are supposed to
* be cleared on disconnect, so should not need to be cleared on
* finalize
*/
i = 0;
while (i < N_BUS_TYPES)
{
if (bus_connections[i] == bd->connection)
bus_connections[i] = NULL;
++i;
}
_DBUS_UNLOCK (bus);
}
dbus_free (bd->unique_name);
dbus_free (bd);
dbus_connection_free_data_slot (&bus_data_slot);
}
开发者ID:325116067,项目名称:semc-qsd8x50,代码行数:30,代码来源:dbus-bus.c
示例4: MoveFileA
BOOL
MoveFileA (LPCSTR lpExistingFileName, LPCSTR lpNewFileName)
{
wchar_t *existing_filename;
wchar_t *new_filename;
BOOL result;
int err;
existing_filename = _dbus_win_utf8_to_utf16 (lpExistingFileName, NULL);
if (! existing_filename)
return FALSE;
new_filename = _dbus_win_utf8_to_utf16 (lpNewFileName, NULL);
if (! new_filename)
{
dbus_free (existing_filename);
return FALSE;
}
result = MoveFileW (existing_filename, new_filename);
err = GetLastError ();
dbus_free (existing_filename);
dbus_free (new_filename);
SetLastError (err);
return result;
}
开发者ID:twobob,项目名称:WebKitGtkKindleDXG,代码行数:27,代码来源:dbus-sysdeps-wince-glue.c
示例5: _dbus_directory_get_next_file
dbus_bool_t
_dbus_directory_get_next_file (DBusDirIter *iter,
DBusString *filename,
DBusError *error)
{
struct dirent *d, *ent;
size_t buf_size;
int err;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
if (!dirent_buf_size (iter->d, &buf_size))
{
dbus_set_error (error, DBUS_ERROR_FAILED,
"Can't calculate buffer size when reading directory");
return FALSE;
}
d = (struct dirent *)dbus_malloc (buf_size);
if (!d)
{
dbus_set_error (error, DBUS_ERROR_NO_MEMORY,
"No memory to read directory entry");
return FALSE;
}
again:
err = readdir_r (iter->d, d, &ent);
if (err || !ent)
{
if (err != 0)
dbus_set_error (error,
_dbus_error_from_errno (err),
"%s", _dbus_strerror (err));
dbus_free (d);
return FALSE;
}
else if (ent->d_name[0] == '.' &&
(ent->d_name[1] == '\0' ||
(ent->d_name[1] == '.' && ent->d_name[2] == '\0')))
goto again;
else
{
_dbus_string_set_length (filename, 0);
if (!_dbus_string_append (filename, ent->d_name))
{
dbus_set_error (error, DBUS_ERROR_NO_MEMORY,
"No memory to read directory entry");
dbus_free (d);
return FALSE;
}
else
{
dbus_free (d);
return TRUE;
}
}
}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:59,代码来源:dbus-sysdeps-util-unix.c
示例6: properties_to_info
static bool properties_to_info(DBusMessage* properties, SynceInfo* info)
{
DBusMessageIter iter;
DBusMessageIter iter_dict;
dbus_message_iter_init(properties, &iter);
for (dbus_message_iter_init_dict_iterator(&iter, &iter_dict);
;
dbus_message_iter_next(&iter_dict))
{
char* str_value = NULL;
char* key = dbus_message_iter_get_dict_key(&iter_dict);
int type = dbus_message_iter_get_arg_type(&iter_dict);
int int_value;
synce_debug("Key = %s", key);
if (!key)
continue;
switch (type)
{
case DBUS_TYPE_STRING:
str_value = dbus_message_iter_get_string(&iter_dict);
if (STR_EQUAL(key, "address"))
info->ip = STRDUP(str_value);
else if (STR_EQUAL(key, "password"))
info->password = STRDUP(str_value);
/* TODO: handle more string properties */
dbus_free(str_value);
break;
case DBUS_TYPE_INT32:
int_value = dbus_message_iter_get_int32(&iter_dict);
if (STR_EQUAL(key, "key"))
info->key = int_value;
/* TODO: handle more int32 properties */
break;
}
dbus_free(key);
if (!dbus_message_iter_has_next(&iter_dict))
break;
}
/* Fake dccm PID! */
info->dccm_pid = getpid();
return info->ip != NULL;
}
开发者ID:guadalinex-archive,项目名称:guadalinex-v4,代码行数:58,代码来源:info.c
示例7: socket_set_poll_free
/* this is safe to call on a partially-allocated socket set */
static void
socket_set_poll_free (DBusSocketSet *set)
{
DBusSocketSetPoll *self = socket_set_poll_cast (set);
dbus_free (self->fds);
dbus_free (self);
_dbus_verbose ("freed socket set %p\n", self);
}
开发者ID:TaoheGit,项目名称:hmi_sdl_android,代码行数:10,代码来源:dbus-socket-set-poll.c
示例8: supplicant_dbus_method_call
int supplicant_dbus_method_call(const char *path,
const char *interface, const char *method,
supplicant_dbus_setup_function setup,
supplicant_dbus_result_function function,
void *user_data)
{
struct method_call_data *data;
DBusMessage *message;
DBusMessageIter iter;
DBusPendingCall *call;
if (connection == NULL)
return -EINVAL;
if (path == NULL || interface == NULL || method == NULL)
return -EINVAL;
data = dbus_malloc0(sizeof(*data));
if (data == NULL)
return -ENOMEM;
message = dbus_message_new_method_call(SUPPLICANT_SERVICE, path,
interface, method);
if (message == NULL) {
dbus_free(data);
return -ENOMEM;
}
dbus_message_set_auto_start(message, FALSE);
dbus_message_iter_init_append(message, &iter);
if (setup != NULL)
setup(&iter, user_data);
if (dbus_connection_send_with_reply(connection, message,
&call, TIMEOUT) == FALSE) {
dbus_message_unref(message);
dbus_free(data);
return -EIO;
}
if (call == NULL) {
dbus_message_unref(message);
dbus_free(data);
return -EIO;
}
data->function = function;
data->user_data = user_data;
dbus_pending_call_set_notify(call, method_call_reply,
data, dbus_free);
dbus_message_unref(message);
return 0;
}
开发者ID:Jubei-Mitsuyoshi,项目名称:aaa-connman,代码行数:57,代码来源:dbus.c
示例9: parse_section_start
static dbus_bool_t
parse_section_start (BusDesktopFileParser *parser, DBusError *error)
{
int line_end, eol_len;
char *section_name;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
if (!_dbus_string_find_eol (&parser->data, parser->pos, &line_end, &eol_len))
line_end = parser->len;
if (line_end - parser->pos <= 2 ||
_dbus_string_get_byte (&parser->data, line_end - 1) != ']')
{
report_error (parser, "Invalid syntax for section header", BUS_DESKTOP_PARSE_ERROR_INVALID_SYNTAX, error);
parser_free (parser);
return FALSE;
}
section_name = unescape_string (parser,
&parser->data, parser->pos + 1, line_end - 1,
error);
if (section_name == NULL)
{
parser_free (parser);
return FALSE;
}
if (!is_valid_section_name (section_name))
{
report_error (parser, "Invalid characters in section name", BUS_DESKTOP_PARSE_ERROR_INVALID_CHARS, error);
parser_free (parser);
dbus_free (section_name);
return FALSE;
}
if (open_section (parser, section_name) == NULL)
{
dbus_free (section_name);
parser_free (parser);
BUS_SET_OOM (error);
return FALSE;
}
if (line_end == parser->len)
parser->pos = parser->len;
else
parser->pos = line_end + eol_len;
parser->line_num += 1;
dbus_free (section_name);
return TRUE;
}
开发者ID:d-bus,项目名称:dbus,代码行数:56,代码来源:desktop-file.c
示例10: supplicant_dbus_property_get
int supplicant_dbus_property_get(const char *path, const char *interface,
const char *method,
supplicant_dbus_property_function function,
void *user_data)
{
struct property_get_data *data;
DBusMessage *message;
DBusPendingCall *call;
if (connection == NULL)
return -EINVAL;
if (path == NULL || interface == NULL || method == NULL)
return -EINVAL;
data = dbus_malloc0(sizeof(*data));
if (data == NULL)
return -ENOMEM;
message = dbus_message_new_method_call(SUPPLICANT_SERVICE, path,
DBUS_INTERFACE_PROPERTIES, "Get");
if (message == NULL) {
dbus_free(data);
return -ENOMEM;
}
dbus_message_set_auto_start(message, FALSE);
dbus_message_append_args(message, DBUS_TYPE_STRING, &interface,
DBUS_TYPE_STRING, &method, NULL);
if (dbus_connection_send_with_reply(connection, message,
&call, TIMEOUT) == FALSE) {
dbus_message_unref(message);
dbus_free(data);
return -EIO;
}
if (call == NULL) {
dbus_message_unref(message);
dbus_free(data);
return -EIO;
}
data->function = function;
data->user_data = user_data;
dbus_pending_call_set_notify(call, property_get_reply,
data, dbus_free);
dbus_message_unref(message);
return 0;
}
开发者ID:Jubei-Mitsuyoshi,项目名称:aaa-connman,代码行数:55,代码来源:dbus.c
示例11: launch_bus_name
static dbus_bool_t
launch_bus_name (const char *bus_name, BusConfigParser *parser, int alias_depth, DBusError *error)
{
BusDesktopFile *desktop_file;
char *exec, *user, *alias;
dbus_bool_t retval;
exec = NULL;
user = NULL;
alias = NULL;
retval = FALSE;
/* get the correct service file for the name we are trying to activate */
desktop_file = desktop_file_for_name (parser, bus_name, error);
if (desktop_file == NULL)
return FALSE;
/* get exec and user for service name */
if (!get_parameters_for_service (desktop_file, bus_name, &exec, &user, &alias, error))
goto finish;
_dbus_verbose ("dbus-daemon-activation-helper: Name='%s'\n", bus_name);
if (alias == NULL)
{
_dbus_verbose ("dbus-daemon-activation-helper: Exec='%s'\n", exec);
_dbus_verbose ("dbus-daemon-activation-helper: User='%s'\n", user);
/* actually execute */
if (!exec_for_correct_user (exec, user, alias, error))
goto finish;
}
else
{
_dbus_verbose ("dbus-daemon-activation-helper: Alias='%s'\n", alias);
if (alias_depth >= DBUS_ACTIVATION_MAX_ALIAS_DEPTH)
{
dbus_set_error (error, DBUS_ERROR_SPAWN_SETUP_FAILED,
"Maximum recursion of aliased services reached.");
goto finish;
}
/* execute the aliased service */
if (!run_launch_helper (alias, alias_depth, error))
goto finish;
}
retval = TRUE;
finish:
dbus_free (exec);
dbus_free (user);
dbus_free (alias);
bus_desktop_file_free (desktop_file);
return retval;
}
开发者ID:darrengarvey,项目名称:dbus,代码行数:55,代码来源:activation-helper.c
示例12: bus_desktop_file_section_free
static void
bus_desktop_file_section_free (BusDesktopFileSection *section)
{
int i;
for (i = 0; i < section->n_lines; i++)
bus_desktop_file_line_free (§ion->lines[i]);
dbus_free (section->lines);
dbus_free (section->section_name);
}
开发者ID:freedesktop-unofficial-mirror,项目名称:dbus__dbus-qt3,代码行数:11,代码来源:desktop-file.c
示例13: bus_desktop_file_free
void
bus_desktop_file_free (BusDesktopFile *desktop_file)
{
int i;
for (i = 0; i < desktop_file->n_sections; i++)
bus_desktop_file_section_free (&desktop_file->sections[i]);
dbus_free (desktop_file->sections);
dbus_free (desktop_file);
}
开发者ID:freedesktop-unofficial-mirror,项目名称:dbus__dbus-qt3,代码行数:11,代码来源:desktop-file.c
示例14: _dbus_credentials_clear
/**
* Clear all credentials in the object.
*
* @param credentials the object
*/
void
_dbus_credentials_clear (DBusCredentials *credentials)
{
credentials->pid = DBUS_PID_UNSET;
credentials->unix_uid = DBUS_UID_UNSET;
dbus_free (credentials->windows_sid);
credentials->windows_sid = NULL;
dbus_free (credentials->adt_audit_data);
credentials->adt_audit_data = NULL;
credentials->adt_audit_data_size = 0;
}
开发者ID:AByzhynar,项目名称:sdl_core,代码行数:16,代码来源:dbus-credentials.c
示例15: debug_finalize
static void
debug_finalize (DBusServer *server)
{
DBusServerDebugPipe *debug_server = (DBusServerDebugPipe*) server;
pipe_hash_unref ();
_dbus_server_finalize_base (server);
dbus_free (debug_server->name);
dbus_free (server);
}
开发者ID:deepikateriar,项目名称:Onlive-Source-Backup,代码行数:12,代码来源:dbus-server-debug-pipe.c
示例16: _dbus_credentials_unref
/**
* Decrement refcount on credentials.
*
* @param credentials the object
*/
void
_dbus_credentials_unref (DBusCredentials *credentials)
{
_dbus_assert (credentials->refcount > 0);
credentials->refcount -= 1;
if (credentials->refcount == 0)
{
dbus_free (credentials->windows_sid);
dbus_free (credentials->adt_audit_data);
dbus_free (credentials);
}
}
开发者ID:AByzhynar,项目名称:sdl_core,代码行数:18,代码来源:dbus-credentials.c
示例17: _dbus_server_test
dbus_bool_t
_dbus_server_test (void)
{
const char *valid_addresses[] = {
"tcp:port=1234",
"tcp:host=localhost,port=1234",
"tcp:host=localhost,port=1234;tcp:port=5678",
#ifdef DBUS_UNIX
"unix:path=./boogie",
"tcp:port=1234;unix:path=./boogie",
#endif
};
DBusServer *server;
int i;
for (i = 0; i < _DBUS_N_ELEMENTS (valid_addresses); i++)
{
DBusError error = DBUS_ERROR_INIT;
char *address;
char *id;
server = dbus_server_listen (valid_addresses[i], &error);
if (server == NULL)
{
_dbus_warn ("server listen error: %s: %s\n", error.name, error.message);
dbus_error_free (&error);
_dbus_assert_not_reached ("Failed to listen for valid address.");
}
id = dbus_server_get_id (server);
_dbus_assert (id != NULL);
address = dbus_server_get_address (server);
_dbus_assert (address != NULL);
if (strstr (address, id) == NULL)
{
_dbus_warn ("server id '%s' is not in the server address '%s'\n",
id, address);
_dbus_assert_not_reached ("bad server id or address");
}
dbus_free (id);
dbus_free (address);
dbus_server_disconnect (server);
dbus_server_unref (server);
}
return TRUE;
}
开发者ID:balagopalraj,项目名称:clearlinux,代码行数:51,代码来源:dbus-server.c
示例18: get_parameters_for_service
static dbus_bool_t
get_parameters_for_service (BusDesktopFile *desktop_file,
const char *service_name,
char **exec,
char **user,
DBusError *error)
{
char *exec_tmp;
char *user_tmp;
exec_tmp = NULL;
user_tmp = NULL;
/* check the name of the service */
if (!check_service_name (desktop_file, service_name, error))
goto failed;
/* get the complete path of the executable */
if (!bus_desktop_file_get_string (desktop_file,
DBUS_SERVICE_SECTION,
DBUS_SERVICE_EXEC,
&exec_tmp,
error))
{
_DBUS_ASSERT_ERROR_IS_SET (error);
goto failed;
}
/* get the user that should run this service - user is compulsary for system activation */
if (!bus_desktop_file_get_string (desktop_file,
DBUS_SERVICE_SECTION,
DBUS_SERVICE_USER,
&user_tmp,
error))
{
_DBUS_ASSERT_ERROR_IS_SET (error);
goto failed;
}
/* only assign if all the checks passed */
*exec = exec_tmp;
*user = user_tmp;
return TRUE;
failed:
dbus_free (exec_tmp);
dbus_free (user_tmp);
return FALSE;
}
开发者ID:mirsal,项目名称:dbus,代码行数:49,代码来源:activation-helper.c
示例19: check_service_name
static dbus_bool_t
check_service_name (BusDesktopFile *desktop_file,
const char *service_name,
DBusError *error)
{
char *name_tmp;
dbus_bool_t retval;
retval = FALSE;
/* try to get Name */
if (!bus_desktop_file_get_string (desktop_file,
DBUS_SERVICE_SECTION,
DBUS_SERVICE_NAME,
&name_tmp,
error))
goto failed;
/* verify that the name is the same as the file service name */
if (strcmp (service_name, name_tmp) != 0)
{
dbus_set_error (error, DBUS_ERROR_SPAWN_FILE_INVALID,
"Service '%s' does not match expected value", name_tmp);
goto failed_free;
}
retval = TRUE;
failed_free:
/* we don't return the name, so free it here */
dbus_free (name_tmp);
failed:
return retval;
}
开发者ID:darrengarvey,项目名称:dbus,代码行数:34,代码来源:activation-helper.c
示例20: script_signature_each
//! Splits signature into atomic DBus object signatures
PyObject *
script_signature_each(const char *signature)
{
PyObject *py_list = PyList_New(0);
DBusError error;
DBusSignatureIter iter;
dbus_signature_iter_init(&iter, signature);
while (dbus_signature_iter_get_current_type(&iter) != DBUS_TYPE_INVALID) {
char *sign = dbus_signature_iter_get_signature(&iter);
dbus_error_init(&error);
dbus_signature_validate(sign, &error);
if (dbus_error_is_set(&error)) {
dbus_error_free(&error);
return NULL;
}
else {
PyList_Append(py_list, PyString_FromString(sign));
}
dbus_free(sign);
dbus_signature_iter_next(&iter);
}
return py_list;
}
开发者ID:Pardus-Linux,项目名称:COMAR,代码行数:29,代码来源:script.c
注:本文中的dbus_free函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论