X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=include%2Felement.h;h=d8fa88c13f420084043663ae56f3d5557a020a13;hb=aee3ce108157d7776420cecca4690c597d2cee8f;hp=e56f669fb99dc813f10d645705bf708edc200a35;hpb=da8e11efb0472f8d21cd4afff152036701e531a9;p=connman diff --git a/include/element.h b/include/element.h index e56f669..d8fa88c 100644 --- a/include/element.h +++ b/include/element.h @@ -2,7 +2,7 @@ * * Connection Manager * - * Copyright (C) 2007-2008 Intel Corporation. All rights reserved. + * Copyright (C) 2007-2009 Intel Corporation. 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 @@ -30,6 +30,8 @@ extern "C" { #include #include +#include +#include /** * SECTION:element @@ -37,21 +39,6 @@ extern "C" { * @short_description: Functions for handling elements */ -enum connman_element_state { - CONNMAN_ELEMENT_STATE_UNKNOWN = 0, - CONNMAN_ELEMENT_STATE_CONNECT = 1, - CONNMAN_ELEMENT_STATE_CONNECTED = 2, - CONNMAN_ELEMENT_STATE_CLOSED = 3, -}; - -enum connman_element_policy { - CONNMAN_ELEMENT_POLICY_UNKNOWN = 0, - CONNMAN_ELEMENT_POLICY_OFF = 1, - CONNMAN_ELEMENT_POLICY_AUTO = 2, - CONNMAN_ELEMENT_POLICY_IGNORE = 3, - CONNMAN_ELEMENT_POLICY_ASK = 4, -}; - enum connman_element_type { CONNMAN_ELEMENT_TYPE_UNKNOWN = 0, CONNMAN_ELEMENT_TYPE_ROOT = 1, @@ -59,25 +46,14 @@ enum connman_element_type { CONNMAN_ELEMENT_TYPE_DEVICE = 3, CONNMAN_ELEMENT_TYPE_NETWORK = 4, CONNMAN_ELEMENT_TYPE_SERVICE = 5, - CONNMAN_ELEMENT_TYPE_IPV4 = 6, - CONNMAN_ELEMENT_TYPE_IPV6 = 7, - CONNMAN_ELEMENT_TYPE_DHCP = 8, - CONNMAN_ELEMENT_TYPE_BOOTP = 9, - CONNMAN_ELEMENT_TYPE_ZEROCONF = 10, - CONNMAN_ELEMENT_TYPE_RESOLVER = 11, - + CONNMAN_ELEMENT_TYPE_PPP = 6, + CONNMAN_ELEMENT_TYPE_IPV4 = 7, + CONNMAN_ELEMENT_TYPE_IPV6 = 8, + CONNMAN_ELEMENT_TYPE_DHCP = 9, + CONNMAN_ELEMENT_TYPE_BOOTP = 10, + CONNMAN_ELEMENT_TYPE_ZEROCONF = 11, CONNMAN_ELEMENT_TYPE_CONNECTION = 42, -}; - -enum connman_element_subtype { - CONNMAN_ELEMENT_SUBTYPE_UNKNOWN = 0, - CONNMAN_ELEMENT_SUBTYPE_FAKE = 1, - CONNMAN_ELEMENT_SUBTYPE_NETWORK = 2, - CONNMAN_ELEMENT_SUBTYPE_ETHERNET = 3, - CONNMAN_ELEMENT_SUBTYPE_WIFI = 4, - CONNMAN_ELEMENT_SUBTYPE_WIMAX = 5, - CONNMAN_ELEMENT_SUBTYPE_MODEM = 6, - CONNMAN_ELEMENT_SUBTYPE_BLUETOOTH = 7, + CONNMAN_ELEMENT_TYPE_VENDOR = 10000, }; struct connman_driver; @@ -88,13 +64,8 @@ struct connman_element { gchar *name; gchar *path; enum connman_element_type type; - enum connman_element_subtype subtype; - enum connman_element_state state; - enum connman_element_policy policy; gboolean enabled; - gboolean available; - gboolean remember; - guint16 priority; + gboolean configuring; gchar *devname; struct connman_element *parent; @@ -102,9 +73,18 @@ struct connman_element { struct connman_driver *driver; void *driver_data; - GSList *properties; + void (*destruct) (struct connman_element *element); + + union { + void *private; + struct connman_device *device; + struct connman_network *network; + }; + + GHashTable *properties; struct { + enum connman_ipv4_method method; gchar *address; gchar *netmask; gchar *gateway; @@ -112,34 +92,27 @@ struct connman_element { gchar *broadcast; gchar *nameserver; } ipv4; - - struct { - gchar *security; - gchar *passphrase; - } wifi; }; extern struct connman_element *connman_element_create(const char *name); extern struct connman_element *connman_element_ref(struct connman_element *element); extern void connman_element_unref(struct connman_element *element); -extern int connman_element_add_static_property(struct connman_element *element, - const char *name, int type, const void *value); -extern int connman_element_add_static_array_property(struct connman_element *element, - const char *name, int type, const void *value, int len); -extern int connman_element_define_properties(struct connman_element *element, ...); -extern int connman_element_create_property(struct connman_element *element, - const char *name, int type); -extern int connman_element_set_property(struct connman_element *element, - enum connman_property_id id, const void *value); extern int connman_element_get_value(struct connman_element *element, enum connman_property_id id, void *value); -extern gboolean connman_element_get_static_property(struct connman_element *element, - const char *name, void *value); -extern gboolean connman_element_get_static_array_property(struct connman_element *element, - const char *name, void *value, int *len); -extern gboolean connman_element_match_static_property(struct connman_element *element, - const char *name, const void *value); + +extern int connman_element_set_string(struct connman_element *element, + const char *key, const char *value); +extern const char *connman_element_get_string(struct connman_element *element, + const char *key); +extern int connman_element_set_uint8(struct connman_element *element, + const char *key, connman_uint8_t value); +extern connman_uint8_t connman_element_get_uint8(struct connman_element *element, + const char *key); +extern int connman_element_set_blob(struct connman_element *element, + const char *key, const void *data, unsigned int size); +extern const void *connman_element_get_blob(struct connman_element *element, + const char *key, unsigned int *size); extern int connman_element_register(struct connman_element *element, struct connman_element *parent); @@ -150,9 +123,6 @@ extern void connman_element_update(struct connman_element *element); extern int connman_element_set_enabled(struct connman_element *element, gboolean enabled); -extern int connman_element_set_enabled(struct connman_element *element, - gboolean enabled); - static inline void *connman_element_get_data(struct connman_element *element) { return element->driver_data;