X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=include%2Felement.h;h=bc6a2a9e418de6e0e061ff670895da057a45a7fe;hb=047b77e08e636a4ac1d1857effbb2ca409201d5f;hp=bc03011a53488574d7e0c7bc1017d4c560d244c3;hpb=1dcb48fa42e97ec8addb292976887a80ac42e450;p=connman diff --git a/include/element.h b/include/element.h index bc03011..bc6a2a9 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,20 +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_IGNORE = 1, - CONNMAN_ELEMENT_POLICY_AUTO = 2, - CONNMAN_ELEMENT_POLICY_ASK = 3, -}; - enum connman_element_type { CONNMAN_ELEMENT_TYPE_UNKNOWN = 0, CONNMAN_ELEMENT_TYPE_ROOT = 1, @@ -58,24 +46,27 @@ 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_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, + CONNMAN_ELEMENT_TYPE_VENDOR = 10000, +}; + +enum connman_element_state { + CONNMAN_ELEMENT_STATE_UNKNOWN = 0, + CONNMAN_ELEMENT_STATE_ERROR = 1, + CONNMAN_ELEMENT_STATE_IDLE = 2, + CONNMAN_ELEMENT_STATE_DONE = 3, }; -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, +enum connman_element_error { + CONNMAN_ELEMENT_ERROR_UNKNOWN = 0, + CONNMAN_ELEMENT_ERROR_FAILED = 1, + CONNMAN_ELEMENT_ERROR_DHCP_FAILED = 2, }; struct connman_driver; @@ -86,13 +77,10 @@ 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; + enum connman_element_error error; gboolean enabled; - gboolean available; - gboolean remember; - guint16 priority; + gboolean configuring; gchar *devname; struct connman_element *parent; @@ -100,9 +88,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; @@ -110,36 +107,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_set_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); @@ -149,9 +137,8 @@ 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); +extern void connman_element_set_error(struct connman_element *element, + enum connman_element_error error); static inline void *connman_element_get_data(struct connman_element *element) {