shill: InputHandler: Add error callback

Input IOHandler owners now must supply a callback for handling
input exceptions.  This allows individual modules to decide
whether or not this is a fatal error or not.

BUG=chromium-os:37415
TEST=New unit tests, Manual: Make sure HTTPProxy and HTTPRequest
continue to work normally

Change-Id: Idf9c106d5f2a4985fb4720f54ddb6d66c60f9173
Reviewed-on: https://gerrit.chromium.org/gerrit/40021
Commit-Queue: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/event_dispatcher.cc b/event_dispatcher.cc
index ae0bf88..393b5b3 100644
--- a/event_dispatcher.cc
+++ b/event_dispatcher.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -44,8 +44,10 @@
 
 IOHandler *EventDispatcher::CreateInputHandler(
     int fd,
-    const Callback<void(InputData *)> &callback) {
-  IOHandler *handler = new GlibIOInputHandler(fd, callback);
+    const IOHandler::InputCallback &input_callback,
+    const IOHandler::ErrorCallback &error_callback) {
+  IOHandler *handler = new GlibIOInputHandler(
+      fd, input_callback, error_callback);
   handler->Start();
   return handler;
 }
@@ -53,8 +55,8 @@
 IOHandler *EventDispatcher::CreateReadyHandler(
     int fd,
     IOHandler::ReadyMode mode,
-    const Callback<void(int)> &callback) {
-  IOHandler *handler = new GlibIOReadyHandler(fd, mode, callback);
+    const Callback<void(int)> &ready_callback) {
+  IOHandler *handler = new GlibIOReadyHandler(fd, mode, ready_callback);
   handler->Start();
   return handler;
 }