X-Git-Url: http://git.maemo.org/git/?p=connman;a=blobdiff_plain;f=include%2Felement.h;h=d91886b674795b8e916d07c5e04f2a34eb3c3b33;hp=dfcbd0f001b210f12a25981025f5440d1453bb98;hb=33eca46278b1b3d17a3f966758cb03ec52cd414c;hpb=ffb18df525c7435ec77ecb5ceac14cb357ca57d7 diff --git a/include/element.h b/include/element.h index dfcbd0f..d91886b 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 @@ -29,64 +29,60 @@ extern "C" { #include #include -enum connman_element_state { - CONNMAN_ELEMENT_STATE_UNKNOWN = 0, - CONNMAN_ELEMENT_STATE_CONNECT = 1, - CONNMAN_ELEMENT_STATE_CONNECTED = 2, - CONNMAN_ELEMENT_STATE_CLOSED = 3, -}; +#include +#include + +/** + * SECTION:element + * @title: Element premitives + * @short_description: Functions for handling elements + */ enum connman_element_type { CONNMAN_ELEMENT_TYPE_UNKNOWN = 0, CONNMAN_ELEMENT_TYPE_ROOT = 1, - CONNMAN_ELEMENT_TYPE_DEVICE = 2, - CONNMAN_ELEMENT_TYPE_NETWORK = 3, - CONNMAN_ELEMENT_TYPE_IPV4 = 4, - CONNMAN_ELEMENT_TYPE_IPV6 = 5, - CONNMAN_ELEMENT_TYPE_DHCP = 6, - CONNMAN_ELEMENT_TYPE_BOOTP = 7, - CONNMAN_ELEMENT_TYPE_ZEROCONF = 8, - + CONNMAN_ELEMENT_TYPE_PROFILE = 2, + CONNMAN_ELEMENT_TYPE_DEVICE = 3, + CONNMAN_ELEMENT_TYPE_NETWORK = 4, + CONNMAN_ELEMENT_TYPE_SERVICE = 5, + 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_ETHERNET = 1, - CONNMAN_ELEMENT_SUBTYPE_WIFI = 2, - CONNMAN_ELEMENT_SUBTYPE_WIMAX = 3, - CONNMAN_ELEMENT_SUBTYPE_MODEM = 4, - CONNMAN_ELEMENT_SUBTYPE_BLUETOOTH = 5, + CONNMAN_ELEMENT_TYPE_VENDOR = 10000, }; struct connman_driver; struct connman_element { gint refcount; + gint index; gchar *name; gchar *path; enum connman_element_type type; - enum connman_element_subtype subtype; - enum connman_element_state state; + gboolean enabled; + gchar *devname; struct connman_element *parent; struct connman_driver *driver; void *driver_data; - struct { - gchar *driver; - gchar *vendor; - gchar *product; - } info; + void (*destruct) (struct connman_element *element); - struct { - int index; - short flags; - gchar *name; - } netdev; + union { + void *private; + struct connman_device *device; + struct connman_network *network; + }; + + GSList *properties; struct { + enum connman_ipv4_method method; gchar *address; gchar *netmask; gchar *gateway; @@ -96,15 +92,39 @@ struct connman_element { } ipv4; }; -extern struct connman_element *connman_element_create(void); +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_register(struct connman_element *element, struct connman_element *parent); extern void connman_element_unregister(struct connman_element *element); +extern void connman_element_unregister_children(struct connman_element *element); extern void connman_element_update(struct connman_element *element); +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;