shill: Convert code to use the newest version of libchrome.
The biggest change is a switch from using the deprecated
Task and CallbackN mechanisms to using the new Callback
mechanism.
Note: Original CL was https://gerrit.chromium.org/gerrit/16156.
This is logically another patch to that CL, but since the
latter was already merged, and is considered closed by
Gerrit, it's necessary to create a new CL.
BUG=chromium-os:15330
TEST=Build shill and run it on a zgb with a modem. Build and
run unit tests.
CQ-DEPEND=I37628863370323d30cac493764ea28f8ffd42637
Change-Id: I3ae78a3aa44ec167b79f2170d07650ece888254f
Reviewed-on: https://gerrit.chromium.org/gerrit/18030
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Tested-by: Eric Shienbrood <ers@chromium.org>
Commit-Ready: Eric Shienbrood <ers@chromium.org>
diff --git a/glib_io_ready_handler.cc b/glib_io_ready_handler.cc
index b72ca0e..7d58ebb 100644
--- a/glib_io_ready_handler.cc
+++ b/glib_io_ready_handler.cc
@@ -9,15 +9,16 @@
#include <stdio.h>
#include <sys/socket.h>
+using base::Callback;
+
namespace shill {
static gboolean DispatchIOHandler(GIOChannel *chan,
GIOCondition cond,
gpointer data) {
- Callback1<int>::Type *callback =
- reinterpret_cast<Callback1<int>::Type *>(data);
+ GlibIOReadyHandler *handler = reinterpret_cast<GlibIOReadyHandler *>(data);
- callback->Run(g_io_channel_unix_get_fd(chan));
+ handler->callback().Run(g_io_channel_unix_get_fd(chan));
if (cond & (G_IO_NVAL | G_IO_HUP | G_IO_ERR))
return FALSE;
@@ -27,7 +28,7 @@
GlibIOReadyHandler::GlibIOReadyHandler(int fd,
IOHandler::ReadyMode mode,
- Callback1<int>::Type *callback)
+ const Callback<void(int)> &callback)
: channel_(NULL),
callback_(callback),
source_id_(G_MAXUINT) {
@@ -53,8 +54,7 @@
void GlibIOReadyHandler::Start() {
if (source_id_ == G_MAXUINT) {
- source_id_ = g_io_add_watch(channel_, condition_, DispatchIOHandler,
- callback_);
+ source_id_ = g_io_add_watch(channel_, condition_, DispatchIOHandler, this);
}
}