shill: Make all device *PIN service methods asynchronous.

BUG=chromium-os:24955
TEST=unit tests

Change-Id: Id7bb736e4d18331440fa6652726f694d01d46a42
Reviewed-on: https://gerrit.chromium.org/gerrit/13977
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/device.h b/device.h
index 85bf29b..422e7a6 100644
--- a/device.h
+++ b/device.h
@@ -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.
 
@@ -67,14 +67,15 @@
   // The default implementation sets |error| to kNotSupported.
   virtual void Scan(Error *error);
   virtual void RegisterOnNetwork(const std::string &network_id, Error *error);
-  virtual void RequirePIN(const std::string &pin, bool require, Error *error);
+  virtual void RequirePIN(
+      const std::string &pin, bool require, ReturnerInterface *returner);
   virtual void EnterPIN(const std::string &pin, ReturnerInterface *returner);
   virtual void UnblockPIN(const std::string &unblock_code,
                           const std::string &pin,
-                          Error *error);
+                          ReturnerInterface *returner);
   virtual void ChangePIN(const std::string &old_pin,
                          const std::string &new_pin,
-                         Error *error);
+                         ReturnerInterface *returner);
   virtual void DisableIPv6();
   virtual void EnableIPv6();
   virtual void EnableIPv6Privacy();