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/cellular.h b/cellular.h
index 1ec4231..15e9d9f 100644
--- a/cellular.h
+++ b/cellular.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.
 
@@ -164,14 +164,15 @@
   virtual void LinkEvent(unsigned int flags, unsigned int change);
   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);
 
  private:
   friend class CellularTest;