blob: 51ee0cd43ce3a4e488f36e2066401d521a7d106f [file] [log] [blame]
Darin Petkovf7897bc2011-06-08 17:13:36 -07001// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Darin Petkov083047b2011-06-23 20:42:48 -07005#include <base/stringprintf.h>
6
Darin Petkovf7897bc2011-06-08 17:13:36 -07007#include "shill/glib.h"
8
9namespace shill {
10
Darin Petkov3258a812011-06-23 11:28:45 -070011GLib::~GLib() {}
12
Darin Petkov083047b2011-06-23 20:42:48 -070013std::string GLib::ConvertErrorToMessage(GError *error) {
14 if (!error) {
15 return "Unknown GLib error.";
16 }
17 std::string message =
18 base::StringPrintf("GError(%d): %s", error->code, error->message);
19 g_error_free(error);
20 return message;
21}
22
Darin Petkov92c43902011-06-09 20:46:06 -070023guint GLib::ChildWatchAdd(GPid pid,
24 GChildWatchFunc function,
25 gpointer data) {
26 return g_child_watch_add(pid, function, data);
27}
28
Darin Petkov083047b2011-06-23 20:42:48 -070029void GLib::Free(gpointer mem) {
30 g_free(mem);
31}
32
33void GLib::KeyFileFree(GKeyFile *key_file) {
34 g_key_file_free(key_file);
35}
36
37gboolean GLib::KeyFileLoadFromFile(GKeyFile *key_file,
38 const gchar *file,
39 GKeyFileFlags flags,
40 GError **error) {
41 return g_key_file_load_from_file(key_file, file, flags, error);
42}
43
44gboolean GLib::KeyFileGetBoolean(GKeyFile *key_file,
45 const gchar *group_name,
46 const gchar *key,
47 GError **error) {
48 return g_key_file_get_boolean(key_file, group_name, key, error);
49}
50
51gchar **GLib::KeyFileGetGroups(GKeyFile *key_file,
52 gsize *length) {
53 return g_key_file_get_groups(key_file, length);
54}
55
56gint GLib::KeyFileGetInteger(GKeyFile *key_file,
57 const gchar *group_name,
58 const gchar *key,
59 GError **error) {
60 return g_key_file_get_integer(key_file, group_name, key, error);
61}
62
63gchar *GLib::KeyFileGetString(GKeyFile *key_file,
64 const gchar *group_name,
65 const gchar *key,
66 GError **error) {
67 return g_key_file_get_string(key_file, group_name, key, error);
68}
69
70gboolean GLib::KeyFileHasGroup(GKeyFile *key_file,
71 const gchar *group_name) {
72 return g_key_file_has_group(key_file, group_name);
73}
74
75GKeyFile *GLib::KeyFileNew() {
76 return g_key_file_new();
77}
78
79void GLib::KeyFileRemoveGroup(GKeyFile *key_file,
80 const gchar *group_name,
81 GError **error) {
82 g_key_file_remove_group(key_file, group_name, error);
83}
84
85void GLib::KeyFileRemoveKey(GKeyFile *key_file,
86 const gchar *group_name,
87 const gchar *key,
88 GError **error) {
89 g_key_file_remove_key(key_file, group_name, key, error);
90}
91
92void GLib::KeyFileSetBoolean(GKeyFile *key_file,
93 const gchar *group_name,
94 const gchar *key,
95 gboolean value) {
96 g_key_file_set_boolean(key_file, group_name, key, value);
97}
98
99void GLib::KeyFileSetInteger(GKeyFile *key_file,
100 const gchar *group_name,
101 const gchar *key,
102 gint value) {
103 g_key_file_set_integer(key_file, group_name, key, value);
104}
105
106void GLib::KeyFileSetString(GKeyFile *key_file,
107 const gchar *group_name,
108 const gchar *key,
109 const gchar *string) {
110 g_key_file_set_string(key_file, group_name, key, string);
111}
112
113gchar *GLib::KeyFileToData(GKeyFile *key_file,
114 gsize *length,
115 GError **error) {
116 return g_key_file_to_data(key_file, length, error);
117}
118
Darin Petkov92c43902011-06-09 20:46:06 -0700119gboolean GLib::SourceRemove(guint tag) {
120 return g_source_remove(tag);
121}
122
Darin Petkovf7897bc2011-06-08 17:13:36 -0700123gboolean GLib::SpawnAsync(const gchar *working_directory,
124 gchar **argv,
125 gchar **envp,
126 GSpawnFlags flags,
127 GSpawnChildSetupFunc child_setup,
128 gpointer user_data,
129 GPid *child_pid,
130 GError **error) {
131 return g_spawn_async(working_directory,
132 argv,
133 envp,
134 flags,
135 child_setup,
136 user_data,
137 child_pid,
138 error);
139}
140
Darin Petkov92c43902011-06-09 20:46:06 -0700141void GLib::SpawnClosePID(GPid pid) {
142 g_spawn_close_pid(pid);
143}
144
Darin Petkov083047b2011-06-23 20:42:48 -0700145void GLib::Strfreev(gchar **str_array) {
146 g_strfreev(str_array);
147}
148
Darin Petkovf7897bc2011-06-08 17:13:36 -0700149} // namespace shill