NetworkManager r3746 - in trunk: introspection libnm-glib



Author: tambeti
Date: Wed Jun 11 09:31:16 2008
New Revision: 3746
URL: http://svn.gnome.org/viewvc/NetworkManager?rev=3746&view=rev

Log:
2008-06-09  Tambet Ingo  <tambet gmail com>

	* Add missing files.


Added:
   trunk/introspection/nm-device-serial.xml
   trunk/libnm-glib/nm-serial-device.c
   trunk/libnm-glib/nm-serial-device.h

Added: trunk/introspection/nm-device-serial.xml
==============================================================================
--- (empty file)
+++ trunk/introspection/nm-device-serial.xml	Wed Jun 11 09:31:16 2008
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0";>
+  <interface name="org.freedesktop.NetworkManager.Device.Serial">
+
+  <signal name="PppStats">
+    <arg name="in_bytes" type="u">
+      <tp:docstring>
+	Bytes received
+      </tp:docstring>
+    </arg>
+    <arg name="out_bytes" type="u">
+      <tp:docstring>
+	Bytes sent
+      </tp:docstring>
+    </arg>
+  </signal>
+
+  </interface>
+</node>

Added: trunk/libnm-glib/nm-serial-device.c
==============================================================================
--- (empty file)
+++ trunk/libnm-glib/nm-serial-device.c	Wed Jun 11 09:31:16 2008
@@ -0,0 +1,160 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+
+#include "nm-serial-device.h"
+#include "nm-device-private.h"
+#include "nm-object-private.h"
+#include "nm-marshal.h"
+
+G_DEFINE_ABSTRACT_TYPE (NMSerialDevice, nm_serial_device, NM_TYPE_DEVICE)
+
+#define NM_SERIAL_DEVICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SERIAL_DEVICE, NMSerialDevicePrivate))
+
+typedef struct {
+	DBusGProxy *proxy;
+
+	guint32 in_bytes;
+	guint32 out_bytes;
+
+	gboolean disposed;
+} NMSerialDevicePrivate;
+
+enum {
+	PPP_STATS,
+
+	LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
+guint32
+nm_serial_device_get_bytes_received (NMSerialDevice *self)
+{
+	g_return_val_if_fail (NM_IS_SERIAL_DEVICE (self), 0);
+
+	return NM_SERIAL_DEVICE_GET_PRIVATE (self)->in_bytes;
+}
+
+guint32
+nm_serial_device_get_bytes_sent (NMSerialDevice *self)
+{
+	g_return_val_if_fail (NM_IS_SERIAL_DEVICE (self), 0);
+
+	return NM_SERIAL_DEVICE_GET_PRIVATE (self)->out_bytes;
+}
+
+static void
+ppp_stats (DBusGProxy *proxy,
+		   guint32 in_bytes,
+		   guint32 out_bytes,
+		   gpointer user_data)
+{
+	NMSerialDevice *self = NM_SERIAL_DEVICE (user_data);
+	NMSerialDevicePrivate *priv = NM_SERIAL_DEVICE_GET_PRIVATE (self);
+
+	priv->in_bytes = in_bytes;
+	priv->out_bytes = out_bytes;
+
+	g_signal_emit (self, signals[PPP_STATS], 0, in_bytes, out_bytes);
+}
+
+static void
+device_state_changed (NMDevice *device, GParamSpec *pspec, gpointer user_data)
+{
+	NMSerialDevicePrivate *priv;
+
+	switch (nm_device_get_state (device)) {
+	case NM_DEVICE_STATE_UNMANAGED:
+	case NM_DEVICE_STATE_UNAVAILABLE:
+	case NM_DEVICE_STATE_DISCONNECTED:
+		priv = NM_SERIAL_DEVICE_GET_PRIVATE (device);
+		priv->in_bytes = priv->out_bytes = 0;
+		break;
+	default:
+		break;
+	}
+}
+
+static void
+nm_serial_device_init (NMSerialDevice *device)
+{
+}
+
+static GObject*
+constructor (GType type,
+			 guint n_construct_params,
+			 GObjectConstructParam *construct_params)
+{
+	GObject *object;
+	NMSerialDevicePrivate *priv;
+
+	object = G_OBJECT_CLASS (nm_serial_device_parent_class)->constructor (type,
+																		  n_construct_params,
+																		  construct_params);
+	if (!object)
+		return NULL;
+
+	priv = NM_SERIAL_DEVICE_GET_PRIVATE (object);
+
+	priv->proxy = dbus_g_proxy_new_for_name (nm_object_get_connection (NM_OBJECT (object)),
+											 NM_DBUS_SERVICE,
+											 nm_object_get_path (NM_OBJECT (object)),
+											 NM_DBUS_INTERFACE_SERIAL_DEVICE);
+
+	dbus_g_object_register_marshaller (nm_marshal_VOID__UINT_UINT,
+	                                   G_TYPE_NONE,
+	                                   G_TYPE_UINT, G_TYPE_UINT,
+	                                   G_TYPE_INVALID);
+
+	dbus_g_proxy_add_signal (priv->proxy, "PppStats", G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INVALID);
+	dbus_g_proxy_connect_signal (priv->proxy, "PppStats",
+								 G_CALLBACK (ppp_stats),
+								 object,
+								 NULL);
+
+	/* Catch NMDevice::state changes to reset the counters */
+	g_signal_connect (object, "notify::state",
+					  G_CALLBACK (device_state_changed),
+					  object);
+
+	return object;
+}
+
+static void
+dispose (GObject *object)
+{
+	NMSerialDevicePrivate *priv = NM_SERIAL_DEVICE_GET_PRIVATE (object);
+
+	if (priv->disposed) {
+		G_OBJECT_CLASS (nm_serial_device_parent_class)->dispose (object);
+		return;
+	}
+
+	priv->disposed = TRUE;
+
+	g_object_unref (priv->proxy);
+
+	G_OBJECT_CLASS (nm_serial_device_parent_class)->dispose (object);
+}
+
+static void
+nm_serial_device_class_init (NMSerialDeviceClass *device_class)
+{
+	GObjectClass *object_class = G_OBJECT_CLASS (device_class);
+
+	g_type_class_add_private (device_class, sizeof (NMSerialDevicePrivate));
+
+	/* virtual methods */
+	object_class->constructor = constructor;
+	object_class->dispose = dispose;
+
+	/* Signals */
+	signals[PPP_STATS] =
+		g_signal_new ("ppp-stats",
+					  G_OBJECT_CLASS_TYPE (object_class),
+					  G_SIGNAL_RUN_FIRST,
+					  G_STRUCT_OFFSET (NMSerialDeviceClass, ppp_stats),
+					  NULL, NULL,
+					  nm_marshal_VOID__UINT_UINT,
+					  G_TYPE_NONE, 2,
+					  G_TYPE_UINT, G_TYPE_UINT);
+}

Added: trunk/libnm-glib/nm-serial-device.h
==============================================================================
--- (empty file)
+++ trunk/libnm-glib/nm-serial-device.h	Wed Jun 11 09:31:16 2008
@@ -0,0 +1,35 @@
+/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */
+
+#ifndef NM_SERIAL_DEVICE_H
+#define NM_SERIAL_DEVICE_H
+
+#include "nm-device.h"
+
+G_BEGIN_DECLS
+
+#define NM_TYPE_SERIAL_DEVICE            (nm_serial_device_get_type ())
+#define NM_SERIAL_DEVICE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SERIAL_DEVICE, NMSerialDevice))
+#define NM_SERIAL_DEVICE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_SERIAL_DEVICE, NMSerialDeviceClass))
+#define NM_IS_SERIAL_DEVICE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_SERIAL_DEVICE))
+#define NM_IS_SERIAL_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_SERIAL_DEVICE))
+#define NM_SERIAL_DEVICE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_SERIAL_DEVICE, NMSerialDeviceClass))
+
+typedef struct {
+	NMDevice parent;
+} NMSerialDevice;
+
+typedef struct {
+	NMDeviceClass parent;
+
+	/* Signals */
+	void (*ppp_stats) (NMSerialDevice *self, guint32 in_bytes, guint32 out_bytes);
+} NMSerialDeviceClass;
+
+GType nm_serial_device_get_type (void);
+
+guint32 nm_serial_device_get_bytes_received (NMSerialDevice *self);
+guint32 nm_serial_device_get_bytes_sent     (NMSerialDevice *self);
+
+G_END_DECLS
+
+#endif /* NM_SERIAL_DEVICE_H */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]