#include "connman.h"
+struct connman_network {
+ struct connman_element element;
+ enum connman_network_type type;
+
+ struct connman_network_driver *driver;
+ void *driver_data;
+};
+
+static void network_destruct(struct connman_element *element)
+{
+ DBG("element %p name %s", element, element->name);
+}
+
+/**
+ * connman_network_create:
+ * @identifier: network identifier (for example an unqiue name)
+ *
+ * Allocate a new network and assign the #identifier to it.
+ *
+ * Returns: a newly-allocated #connman_network structure
+ */
+struct connman_network *connman_network_create(const char *identifier,
+ enum connman_network_type type)
+{
+ struct connman_network *network;
+
+ DBG("identifier %s type %d", identifier, type);
+
+ network = g_try_new0(struct connman_network, 1);
+ if (network == NULL)
+ return NULL;
+
+ DBG("network %p", network);
+
+ network->element.refcount = 1;
+
+ network->element.name = g_strdup(identifier);
+ network->element.type = CONNMAN_ELEMENT_TYPE_NETWORK;
+ network->element.index = -1;
+
+ network->element.network = network;
+ network->element.destruct = network_destruct;
+
+ network->type = type;
+
+ return network;
+}
+
+/**
+ * connman_network_ref:
+ * @network: network structure
+ *
+ * Increase reference counter of network
+ */
+struct connman_network *connman_network_ref(struct connman_network *network)
+{
+ if (connman_element_ref(&network->element) == NULL)
+ return NULL;
+
+ return network;
+}
+
+/**
+ * connman_network_unref:
+ * @network: network structure
+ *
+ * Decrease reference counter of network
+ */
+void connman_network_unref(struct connman_network *network)
+{
+ connman_element_unref(&network->element);
+}
+
static int network_probe(struct connman_element *element)
{
return 0;