summaryrefslogtreecommitdiffstats
path: root/dundee
diff options
context:
space:
mode:
authorDaniel Wagner <daniel.wagner@bmw-carit.de>2012-01-04 18:12:11 +0100
committerDaniel Wagner <daniel.wagner@bmw-carit.de>2012-05-22 18:44:46 +0200
commit5f92489f970b2f4dfd0f5dcc3f5affc732225a47 (patch)
treef385157d50321b524e03c19c86b4226558faeac5 /dundee
parent6e08f05473a63ffb35cad608a9df64d0bf51ec4c (diff)
downloadofono-5f92489f970b2f4dfd0f5dcc3f5affc732225a47.tar.bz2
dundee: Add skeleton implementation for device
Diffstat (limited to 'dundee')
-rw-r--r--dundee/device.c100
-rw-r--r--dundee/dundee.h15
-rw-r--r--dundee/main.c4
3 files changed, 118 insertions, 1 deletions
diff --git a/dundee/device.c b/dundee/device.c
new file mode 100644
index 00000000..d9fc9286
--- /dev/null
+++ b/dundee/device.c
@@ -0,0 +1,100 @@
+/*
+ * oFono - Open Source Telephony
+ *
+ * Copyright (C) 2008-2012 Intel Corporation. All rights reserved.
+ * Copyright (C) 2012 BMW Car IT GmbH. All rights reserved.
+ *
+ * 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 St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <errno.h>
+#include <string.h>
+#include <stdio.h>
+#include <netinet/ether.h>
+
+#include <glib.h>
+#include <gdbus.h>
+
+#include "dundee.h"
+
+static GHashTable *device_hash;
+
+struct dundee_device {
+};
+
+const char *__dundee_device_get_path(struct dundee_device *device)
+{
+ return "/";
+}
+
+void __dundee_device_append_properties(struct dundee_device *device,
+ DBusMessageIter *dict)
+{
+}
+
+void __dundee_device_foreach(dundee_device_foreach_func func, void *userdata)
+{
+ GHashTableIter iter;
+ gpointer key, value;
+
+ DBG("");
+
+ g_hash_table_iter_init(&iter, device_hash);
+
+ while (g_hash_table_iter_next(&iter, &key, &value) == TRUE) {
+ struct dundee_device *device = value;
+
+ func(device, userdata);
+ }
+}
+
+static void destroy_device(gpointer user)
+{
+ struct dundee_device *device = user;
+
+ g_free(device);
+}
+
+static void device_shutdown(gpointer key, gpointer value, gpointer user_data)
+{
+}
+
+void __dundee_device_shutdown(void)
+{
+ g_hash_table_foreach(device_hash, device_shutdown, NULL);
+
+ __dundee_exit();
+}
+
+int __dundee_device_init(void)
+{
+ DBG("");
+
+ device_hash = g_hash_table_new_full(g_str_hash, g_str_equal,
+ g_free, destroy_device);
+
+ return 0;
+}
+
+void __dundee_device_cleanup(void)
+{
+ DBG("");
+
+ g_hash_table_destroy(device_hash);
+}
diff --git a/dundee/dundee.h b/dundee/dundee.h
index 3050baf7..4f8aa106 100644
--- a/dundee/dundee.h
+++ b/dundee/dundee.h
@@ -53,3 +53,18 @@ DBusMessage *__dundee_error_failed(DBusMessage *msg);
int __dundee_manager_init(void);
void __dundee_manager_cleanup(void);
+
+
+struct dundee_device;
+
+int __dundee_device_init(void);
+void __dundee_device_cleanup(void);
+void __dundee_device_shutdown(void);
+
+typedef void (*dundee_device_foreach_func)(struct dundee_device *device,
+ void *data);
+void __dundee_device_foreach(dundee_device_foreach_func cb, void *userdata);
+
+const char *__dundee_device_get_path(struct dundee_device *device);
+void __dundee_device_append_properties(struct dundee_device *device,
+ DBusMessageIter *dict);
diff --git a/dundee/main.c b/dundee/main.c
index 07b85013..2d3d75ee 100644
--- a/dundee/main.c
+++ b/dundee/main.c
@@ -80,7 +80,7 @@ static gboolean signal_handler(GIOChannel *channel, GIOCondition cond,
g_timeout_add_seconds(SHUTDOWN_GRACE_SECONDS,
quit_eventloop, NULL);
- quit_eventloop(NULL);
+ __dundee_device_shutdown();
}
__terminated = 1;
@@ -233,9 +233,11 @@ int main(int argc, char **argv)
__ofono_dbus_init(conn);
__dundee_manager_init();
+ __dundee_device_init();
g_main_loop_run(event_loop);
+ __dundee_device_cleanup();
__dundee_manager_cleanup();
__ofono_dbus_cleanup();