From: Patrik Flykt <[email protected]>
---
include/storage.h | 3 +++
src/connman.h | 2 ++
src/storage.c | 36 ++++++++++++++++++++++++++++++++++++
3 files changed, 41 insertions(+), 0 deletions(-)
diff --git a/include/storage.h b/include/storage.h
index 6b733f8..033efc8 100644
--- a/include/storage.h
+++ b/include/storage.h
@@ -25,6 +25,7 @@
#include <connman/profile.h>
#include <connman/service.h>
#include <connman/device.h>
+#include <connman/provider.h>
#ifdef __cplusplus
extern "C" {
@@ -52,6 +53,8 @@ struct connman_storage {
enum connman_device_type device_type;
int (*device_load) (struct connman_device *device);
int (*device_save) (struct connman_device *device);
+ int (*provider_load) (struct connman_provider *provider);
+ int (*provider_save) (struct connman_provider *provider);
};
int connman_storage_register(struct connman_storage *storage);
diff --git a/src/connman.h b/src/connman.h
index 2faeb1b..b79e190 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -174,6 +174,8 @@ int __connman_storage_load_service(struct connman_service
*service);
int __connman_storage_save_service(struct connman_service *service);
int __connman_storage_load_device(struct connman_device *device);
int __connman_storage_save_device(struct connman_device *device);
+int __connman_storage_load_provider (struct connman_provider *provider);
+int __connman_storage_save_provider (struct connman_provider *provider);
int __connman_detect_init(void);
void __connman_detect_cleanup(void);
diff --git a/src/storage.c b/src/storage.c
index 81f9ecd..b5b575d 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -307,6 +307,42 @@ int __connman_storage_save_device(struct connman_device
*device)
return -ENOENT;
}
+int __connman_storage_load_provider(struct connman_provider *provider)
+{
+ GSList *list;
+
+ DBG("provider %p", provider);
+
+ for (list = storage_list; list; list = list->next) {
+ struct connman_storage *storage = list->data;
+
+ if (storage->provider_load) {
+ if (storage->provider_load(provider) == 0)
+ return 0;
+ }
+ }
+
+ return -ENOENT;
+}
+
+int __connman_storage_save_provider(struct connman_provider *provider)
+{
+ GSList *list;
+
+ DBG("provider %p", provider);
+
+ for (list = storage_list; list; list = list->next) {
+ struct connman_storage *storage = list->data;
+
+ if (storage->provider_save) {
+ if (storage->provider_save(provider) == 0)
+ return 0;
+ }
+ }
+
+ return -ENOENT;
+}
+
int __connman_storage_init(void)
{
DBG("");
--
1.7.2.5
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman