Store all callbacks as const scoped_ptr<const Callback>.

R=rouslan@chromium.org
BUG=

Review URL: https://codereview.appspot.com/116010043

git-svn-id: http://libaddressinput.googlecode.com/svn/trunk@309 38ededc0-08b8-5190-f2ac-b31f878777ad
diff --git a/cpp/src/retriever.cc b/cpp/src/retriever.cc
index 8fa76b7..bdb8145 100644
--- a/cpp/src/retriever.cc
+++ b/cpp/src/retriever.cc
@@ -95,8 +95,8 @@
   const LookupKeyUtil& lookup_key_util_;
   const Downloader& downloader_;
   ValidatingStorage* storage_;
-  scoped_ptr<Downloader::Callback> downloaded_;
-  scoped_ptr<Storage::Callback> validated_data_ready_;
+  const scoped_ptr<const Downloader::Callback> downloaded_;
+  const scoped_ptr<const Storage::Callback> validated_data_ready_;
   std::string stale_data_;
 
   DISALLOW_COPY_AND_ASSIGN(Helper);
diff --git a/cpp/src/retriever.h b/cpp/src/retriever.h
index 17d17ec..9634935 100644
--- a/cpp/src/retriever.h
+++ b/cpp/src/retriever.h
@@ -37,8 +37,8 @@
 //    Downloader* downloader = ...;
 //    Retriever retriever("https://i18napis.appspot.com/ssl-address/",
 //                        downloader, storage);
-//    scoped_ptr<Retriever::Callback> retrieved(BuildCallback(
-//        this, &MyClass::OnDataRetrieved));
+//    const scoped_ptr<const Retriever::Callback> retrieved(
+//        BuildCallback(this, &MyClass::OnDataRetrieved));
 //    retriever.Retrieve("data/CA/AB--fr", *retrieved);
 class Retriever {
  public:
diff --git a/cpp/src/rule_retriever.cc b/cpp/src/rule_retriever.cc
index a77c93a..f0ed848 100644
--- a/cpp/src/rule_retriever.cc
+++ b/cpp/src/rule_retriever.cc
@@ -57,7 +57,7 @@
   }
 
   const RuleRetriever::Callback& rule_ready_;
-  scoped_ptr<Retriever::Callback> data_retrieved_;
+  const scoped_ptr<const Retriever::Callback> data_retrieved_;
 
   DISALLOW_COPY_AND_ASSIGN(Helper);
 };
diff --git a/cpp/src/rule_retriever.h b/cpp/src/rule_retriever.h
index ba3b4c7..ae4b5ee 100644
--- a/cpp/src/rule_retriever.h
+++ b/cpp/src/rule_retriever.h
@@ -32,8 +32,8 @@
 // Retrieves validation rules. Sample usage:
 //    const Retriever* retriever = ...
 //    RuleRetriever rules(retriever);
-//    scoped_ptr<RuleRetriever::Callback> rule_ready(BuildCallback(
-//        this, &MyClass::OnRuleReady));
+//    const scoped_ptr<const RuleRetriever::Callback> rule_ready(
+//        BuildCallback(this, &MyClass::OnRuleReady));
 //    rules.RetrieveRule("data/CA/AB--fr", *rule_ready);
 class RuleRetriever {
  public:
diff --git a/cpp/src/validating_storage.cc b/cpp/src/validating_storage.cc
index d809bcc..a504db4 100644
--- a/cpp/src/validating_storage.cc
+++ b/cpp/src/validating_storage.cc
@@ -68,7 +68,7 @@
   }
 
   const Storage::Callback& data_ready_;
-  scoped_ptr<Storage::Callback> wrapped_data_ready_;
+  const scoped_ptr<const Storage::Callback> wrapped_data_ready_;
 
   DISALLOW_COPY_AND_ASSIGN(Helper);
 };
diff --git a/cpp/src/validating_storage.h b/cpp/src/validating_storage.h
index 11e74cd..1cf3f95 100644
--- a/cpp/src/validating_storage.h
+++ b/cpp/src/validating_storage.h
@@ -32,8 +32,8 @@
 //    scoped_ptr<Storage> file_storage = ...;
 //    ValidatingStorage storage(file_storage));
 //    storage.Put("key", new std::string("data"));
-//    scoped_ptr<ValidatingStorage::Callback> data_ready(BuildCallback(
-//        this, &MyClass::OnDataReady));
+//    const scoped_ptr<const ValidatingStorage::Callback> data_ready(
+//        BuildCallback(this, &MyClass::OnDataReady));
 //    storage.Get("key", *data_ready);
 class ValidatingStorage : public Storage {
  public:
diff --git a/cpp/test/fake_downloader.h b/cpp/test/fake_downloader.h
index 111ce7a..565263b 100644
--- a/cpp/test/fake_downloader.h
+++ b/cpp/test/fake_downloader.h
@@ -47,7 +47,7 @@
 //      }
 //
 //      FakeDownloader downloader_;
-//      scoped_ptr<Downloader::Callback> callback_;
+//      const scoped_ptr<const Downloader::Callback> callback_;
 //
 //      DISALLOW_COPY_AND_ASSIGN(MyClass);
 //    };
diff --git a/cpp/test/fake_downloader_test.cc b/cpp/test/fake_downloader_test.cc
index 6468277..2d9825f 100644
--- a/cpp/test/fake_downloader_test.cc
+++ b/cpp/test/fake_downloader_test.cc
@@ -95,7 +95,7 @@
 TEST_P(FakeDownloaderTest, FakeDownloaderHasValidDataForRegion) {
   std::string key = "data/" + GetParam();
   std::string url = std::string(FakeDownloader::kFakeDataUrl) + key;
-  scoped_ptr<Downloader::Callback> callback(BuildCallback());
+  const scoped_ptr<const Downloader::Callback> callback(BuildCallback());
   downloader_.Download(url, *callback);
 
   EXPECT_TRUE(success_);
@@ -136,7 +136,7 @@
 TEST_P(FakeDownloaderTest, FakeDownloaderHasValidAggregatedDataForRegion) {
   std::string key = "data/" + GetParam();
   std::string url = std::string(FakeDownloader::kFakeAggregateDataUrl) + key;
-  scoped_ptr<Downloader::Callback> callback(BuildCallback());
+  const scoped_ptr<const Downloader::Callback> callback(BuildCallback());
   downloader_.Download(url, *callback);
 
   EXPECT_TRUE(success_);
@@ -154,7 +154,7 @@
   static const std::string kKey = "data";
   static const std::string kUrl =
       std::string(FakeDownloader::kFakeDataUrl) + kKey;
-  scoped_ptr<Downloader::Callback> callback(BuildCallback());
+  const scoped_ptr<const Downloader::Callback> callback(BuildCallback());
   downloader_.Download(kUrl, *callback);
 
   EXPECT_TRUE(success_);
@@ -166,7 +166,7 @@
 TEST_F(FakeDownloaderTest, DownloadMissingKeyReturnsEmptyDictionary) {
   static const std::string kJunkUrl =
       std::string(FakeDownloader::kFakeDataUrl) + "junk";
-  scoped_ptr<Downloader::Callback> callback(BuildCallback());
+  const scoped_ptr<const Downloader::Callback> callback(BuildCallback());
   downloader_.Download(kJunkUrl, *callback);
 
   EXPECT_TRUE(success_);
@@ -178,7 +178,7 @@
 TEST_F(FakeDownloaderTest, AggregateDownloadMissingKeyReturnsEmptyDictionary) {
   static const std::string kJunkUrl =
       std::string(FakeDownloader::kFakeAggregateDataUrl) + "junk";
-  scoped_ptr<Downloader::Callback> callback(BuildCallback());
+  const scoped_ptr<const Downloader::Callback> callback(BuildCallback());
   downloader_.Download(kJunkUrl, *callback);
 
   EXPECT_TRUE(success_);
@@ -189,7 +189,7 @@
 // Verifies that downloading an empty key will return "{}".
 TEST_F(FakeDownloaderTest, DownloadEmptyKeyReturnsEmptyDictionary) {
   static const std::string kPrefixOnlyUrl = FakeDownloader::kFakeDataUrl;
-  scoped_ptr<Downloader::Callback> callback(BuildCallback());
+  const scoped_ptr<const Downloader::Callback> callback(BuildCallback());
   downloader_.Download(kPrefixOnlyUrl, *callback);
 
   EXPECT_TRUE(success_);
@@ -200,7 +200,7 @@
 // Verifies that downloading a real URL fails.
 TEST_F(FakeDownloaderTest, DownloadRealUrlFals) {
   static const std::string kRealUrl = "http://www.google.com/";
-  scoped_ptr<Downloader::Callback> callback(BuildCallback());
+  const scoped_ptr<const Downloader::Callback> callback(BuildCallback());
   downloader_.Download(kRealUrl, *callback);
 
   EXPECT_FALSE(success_);
diff --git a/cpp/test/fake_storage.h b/cpp/test/fake_storage.h
index 5e07cb0..9188b3b 100644
--- a/cpp/test/fake_storage.h
+++ b/cpp/test/fake_storage.h
@@ -51,7 +51,7 @@
 //      }
 //
 //      FakeStorage storage_;
-//      scoped_ptr<Storage::Callback> callback_;
+//      const scoped_ptr<const Storage::Callback> callback_;
 //
 //      DISALLOW_COPY_AND_ASSIGN(MyClass);
 //    };
diff --git a/cpp/test/fake_storage_test.cc b/cpp/test/fake_storage_test.cc
index f950ee4..ec1695d 100644
--- a/cpp/test/fake_storage_test.cc
+++ b/cpp/test/fake_storage_test.cc
@@ -63,7 +63,7 @@
 };
 
 TEST_F(FakeStorageTest, GetWithoutPutReturnsEmptyData) {
-  scoped_ptr<Storage::Callback> callback(BuildCallback());
+  const scoped_ptr<const Storage::Callback> callback(BuildCallback());
   storage_.Get("key", *callback);
 
   EXPECT_FALSE(success_);
@@ -74,7 +74,7 @@
 TEST_F(FakeStorageTest, GetReturnsWhatWasPut) {
   storage_.Put("key", new std::string("value"));
 
-  scoped_ptr<Storage::Callback> callback(BuildCallback());
+  const scoped_ptr<const Storage::Callback> callback(BuildCallback());
   storage_.Get("key", *callback);
 
   EXPECT_TRUE(success_);
@@ -86,7 +86,7 @@
   storage_.Put("key", new std::string("bad-value"));
   storage_.Put("key", new std::string("good-value"));
 
-  scoped_ptr<Storage::Callback> callback(BuildCallback());
+  const scoped_ptr<const Storage::Callback> callback(BuildCallback());
   storage_.Get("key", *callback);
 
   EXPECT_TRUE(success_);
diff --git a/cpp/test/preload_supplier_test.cc b/cpp/test/preload_supplier_test.cc
index 754ff3f..f8e9e23 100644
--- a/cpp/test/preload_supplier_test.cc
+++ b/cpp/test/preload_supplier_test.cc
@@ -51,7 +51,7 @@
   virtual ~PreloadSupplierTest() {}
 
   PreloadSupplier supplier_;
-  scoped_ptr<PreloadSupplier::Callback> loaded_callback_;
+  const scoped_ptr<const PreloadSupplier::Callback> loaded_callback_;
 
  private:
   void OnLoaded(bool success, const std::string& region_code, int num_rules) {
diff --git a/cpp/test/region_data_builder_test.cc b/cpp/test/region_data_builder_test.cc
index e986d10..a042689 100644
--- a/cpp/test/region_data_builder_test.cc
+++ b/cpp/test/region_data_builder_test.cc
@@ -51,7 +51,7 @@
 
   PreloadSupplier supplier_;
   RegionDataBuilder builder_;
-  scoped_ptr<PreloadSupplier::Callback> loaded_callback_;
+  const scoped_ptr<const PreloadSupplier::Callback> loaded_callback_;
   std::string best_language_;
 
  private:
diff --git a/cpp/test/retriever_test.cc b/cpp/test/retriever_test.cc
index 874353c..54a752b 100644
--- a/cpp/test/retriever_test.cc
+++ b/cpp/test/retriever_test.cc
@@ -90,7 +90,7 @@
 };
 
 TEST_F(RetrieverTest, RetrieveData) {
-  scoped_ptr<Retriever::Callback> callback(BuildCallback());
+  const scoped_ptr<const Retriever::Callback> callback(BuildCallback());
   retriever_.Retrieve(kKey, *callback);
 
   EXPECT_TRUE(success_);
@@ -100,10 +100,10 @@
 }
 
 TEST_F(RetrieverTest, ReadDataFromStorage) {
-  scoped_ptr<Retriever::Callback> callback1(BuildCallback());
+  const scoped_ptr<const Retriever::Callback> callback1(BuildCallback());
   retriever_.Retrieve(kKey, *callback1);
 
-  scoped_ptr<Retriever::Callback> callback2(BuildCallback());
+  const scoped_ptr<const Retriever::Callback> callback2(BuildCallback());
   retriever_.Retrieve(kKey, *callback2);
 
   EXPECT_TRUE(success_);
@@ -115,7 +115,7 @@
 TEST_F(RetrieverTest, MissingKeyReturnsEmptyData) {
   static const char kMissingKey[] = "junk";
 
-  scoped_ptr<Retriever::Callback> callback(BuildCallback());
+  const scoped_ptr<const Retriever::Callback> callback(BuildCallback());
   retriever_.Retrieve(kMissingKey, *callback);
 
   EXPECT_TRUE(success_);
@@ -129,7 +129,7 @@
                           new MockDownloader,
                           new NullStorage);
 
-  scoped_ptr<Retriever::Callback> callback(BuildCallback());
+  const scoped_ptr<const Retriever::Callback> callback(BuildCallback());
   bad_retriever.Retrieve(kKey, *callback);
 
   EXPECT_FALSE(success_);
@@ -167,7 +167,7 @@
   Retriever resilient_retriever(
       MockDownloader::kMockDataUrl, new MockDownloader, stale_storage);
 
-  scoped_ptr<Retriever::Callback> callback(BuildCallback());
+  const scoped_ptr<const Retriever::Callback> callback(BuildCallback());
   resilient_retriever.Retrieve(kKey, *callback);
 
   EXPECT_TRUE(success_);
@@ -182,7 +182,7 @@
   Retriever resilient_retriever(
       FakeDownloader::kFakeDataUrl, new FakeDownloader, stale_storage);
 
-  scoped_ptr<Retriever::Callback> callback(BuildCallback());
+  const scoped_ptr<const Retriever::Callback> callback(BuildCallback());
   resilient_retriever.Retrieve(kKey, *callback);
 
   EXPECT_TRUE(success_);
diff --git a/cpp/test/rule_retriever_test.cc b/cpp/test/rule_retriever_test.cc
index 9a32df3..bc7fdbf 100644
--- a/cpp/test/rule_retriever_test.cc
+++ b/cpp/test/rule_retriever_test.cc
@@ -74,7 +74,7 @@
 TEST_F(RuleRetrieverTest, ExistingRule) {
   static const char kExistingKey[] = "data/CA";
 
-  scoped_ptr<RuleRetriever::Callback> callback(BuildCallback());
+  const scoped_ptr<const RuleRetriever::Callback> callback(BuildCallback());
   rule_retriever_.RetrieveRule(kExistingKey, *callback);
 
   EXPECT_TRUE(success_);
@@ -85,7 +85,7 @@
 TEST_F(RuleRetrieverTest, MissingRule) {
   static const char kMissingKey[] = "junk";
 
-  scoped_ptr<RuleRetriever::Callback> callback(BuildCallback());
+  const scoped_ptr<const RuleRetriever::Callback> callback(BuildCallback());
   rule_retriever_.RetrieveRule(kMissingKey, *callback);
 
   EXPECT_TRUE(success_);  // The server returns "{}" for bad keys.
diff --git a/cpp/test/validating_storage_test.cc b/cpp/test/validating_storage_test.cc
index f786117..1efe60e 100644
--- a/cpp/test/validating_storage_test.cc
+++ b/cpp/test/validating_storage_test.cc
@@ -84,7 +84,7 @@
 TEST_F(ValidatingStorageTest, GoodData) {
   storage_.Put(kKey, new std::string(kValidatedData));
 
-  scoped_ptr<ValidatingStorage::Callback> callback(BuildCallback());
+  const scoped_ptr<const ValidatingStorage::Callback> callback(BuildCallback());
   storage_.Get(kKey, *callback);
 
   EXPECT_TRUE(success_);
@@ -95,7 +95,7 @@
 TEST_F(ValidatingStorageTest, EmptyData) {
   storage_.Put(kKey, new std::string(kEmptyData));
 
-  scoped_ptr<ValidatingStorage::Callback> callback(BuildCallback());
+  const scoped_ptr<const ValidatingStorage::Callback> callback(BuildCallback());
   storage_.Get(kKey, *callback);
 
   EXPECT_TRUE(success_);
@@ -104,7 +104,7 @@
 }
 
 TEST_F(ValidatingStorageTest, MissingKey) {
-  scoped_ptr<ValidatingStorage::Callback> callback(BuildCallback());
+  const scoped_ptr<const ValidatingStorage::Callback> callback(BuildCallback());
   storage_.Get(kKey, *callback);
 
   EXPECT_FALSE(success_);
@@ -116,7 +116,7 @@
   storage_.Put(kKey, new std::string(kValidatedData));
   wrapped_storage_->Put(kKey, new std::string("garbage"));
 
-  scoped_ptr<ValidatingStorage::Callback> callback(BuildCallback());
+  const scoped_ptr<const ValidatingStorage::Callback> callback(BuildCallback());
   storage_.Get(kKey, *callback);
 
   EXPECT_FALSE(success_);
@@ -128,7 +128,7 @@
   storage_.Put(kKey, new std::string(kValidatedData));
   wrapped_storage_->Put(kKey, new std::string(kStaleWrappedData));
 
-  scoped_ptr<ValidatingStorage::Callback> callback(BuildCallback());
+  const scoped_ptr<const ValidatingStorage::Callback> callback(BuildCallback());
   storage_.Get(kKey, *callback);
 
   EXPECT_FALSE(success_);