From cc3921c058080b2b9f6935ebb58f808e3fec261c Mon Sep 17 00:00:00 2001 From: Mohamed Abbas Date: Tue, 8 Dec 2009 11:53:06 -0800 Subject: Add initial support for provider framework --- include/provider.h | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) (limited to 'include/provider.h') diff --git a/include/provider.h b/include/provider.h index 7e5d618e..81f7a19c 100644 --- a/include/provider.h +++ b/include/provider.h @@ -22,6 +22,8 @@ #ifndef __CONNMAN_PROVIDER_H #define __CONNMAN_PROVIDER_H +#include + #ifdef __cplusplus extern "C" { #endif @@ -32,6 +34,63 @@ extern "C" { * @short_description: Functions for handling providers */ +enum connman_provider_state { + CONNMAN_PROVIDER_STATE_UNKNOWN = 0, + CONNMAN_PROVIDER_STATE_IDLE = 1, + CONNMAN_PROVIDER_STATE_CONNECT = 2, + CONNMAN_PROVIDER_STATE_READY = 3, + CONNMAN_PROVIDER_STATE_DISCONNECT = 4, + CONNMAN_PROVIDER_STATE_FAILURE = 5, +}; + +enum connman_provider_error { + CONNMAN_PROVIDER_ERROR_UNKNOWN = 0, + CONNMAN_PROVIDER_ERROR_CONNECT_FAILED = 1, +}; + + +struct connman_provider; + +struct connman_provider *connman_provider_ref(struct connman_provider *provider); +void connman_provider_unref(struct connman_provider *provider); + +int connman_provider_set_string(struct connman_provider *provider, + const char *key, const char *value); +const char *connman_provider_get_string(struct connman_provider *provider, + const char *key); + +int connman_provider_set_connected(struct connman_provider *provider, + connman_bool_t connected); + +void connman_provider_set_index(struct connman_provider *provider, int index); +int connman_provider_get_index(struct connman_provider *provider); + +void connman_provider_set_data(struct connman_provider *provider, void *data); +void *connman_provider_get_data(struct connman_provider *provider); + +void connman_provider_set_gateway(struct connman_provider *provider, + const char *gateway); +void connman_provider_set_address(struct connman_provider *provider, + const char *address); +void connman_provider_set_netmask(struct connman_provider *provider, + const char *netmask); +void connman_provider_set_dns(struct connman_provider *provider, + const char *dns); +void connman_provider_set_domain(struct connman_provider *provider, + const char *domain); + + +struct connman_provider_driver { + const char *name; + int (*probe) (struct connman_provider *provider); + int (*remove) (struct connman_provider *provider); + int (*connect) (struct connman_provider *provider); + int (*disconnect) (struct connman_provider *provider); +}; + +int connman_provider_driver_register(struct connman_provider_driver *driver); +void connman_provider_driver_unregister(struct connman_provider_driver *driver); + #ifdef __cplusplus } #endif -- cgit v1.2.3