| Index: chrome/browser/chromeos/contacts/google_contact_store.h
 | 
| diff --git a/chrome/browser/chromeos/contacts/google_contact_store.h b/chrome/browser/chromeos/contacts/google_contact_store.h
 | 
| deleted file mode 100644
 | 
| index 877372251a59f7117c1d789511e4223610ffc34d..0000000000000000000000000000000000000000
 | 
| --- a/chrome/browser/chromeos/contacts/google_contact_store.h
 | 
| +++ /dev/null
 | 
| @@ -1,203 +0,0 @@
 | 
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 | 
| -// Use of this source code is governed by a BSD-style license that can be
 | 
| -// found in the LICENSE file.
 | 
| -
 | 
| -#ifndef CHROME_BROWSER_CHROMEOS_CONTACTS_GOOGLE_CONTACT_STORE_H_
 | 
| -#define CHROME_BROWSER_CHROMEOS_CONTACTS_GOOGLE_CONTACT_STORE_H_
 | 
| -
 | 
| -#include "chrome/browser/chromeos/contacts/contact_store.h"
 | 
| -
 | 
| -#include <map>
 | 
| -#include <string>
 | 
| -#include <vector>
 | 
| -
 | 
| -#include "base/basictypes.h"
 | 
| -#include "base/compiler_specific.h"
 | 
| -#include "base/memory/scoped_ptr.h"
 | 
| -#include "base/memory/scoped_vector.h"
 | 
| -#include "base/memory/weak_ptr.h"
 | 
| -#include "base/observer_list.h"
 | 
| -#include "base/time/time.h"
 | 
| -#include "base/timer/timer.h"
 | 
| -#include "chrome/browser/chromeos/contacts/contact_map.h"
 | 
| -#include "net/base/network_change_notifier.h"
 | 
| -
 | 
| -class Profile;
 | 
| -
 | 
| -namespace net {
 | 
| -class URLRequestContextGetter;
 | 
| -}  // namespace net
 | 
| -
 | 
| -namespace contacts {
 | 
| -
 | 
| -class Contact;
 | 
| -class ContactDatabaseInterface;
 | 
| -class GDataContactsServiceInterface;
 | 
| -class UpdateMetadata;
 | 
| -
 | 
| -// A collection of contacts from a Google account.
 | 
| -class GoogleContactStore
 | 
| -    : public ContactStore,
 | 
| -      public net::NetworkChangeNotifier::ConnectionTypeObserver {
 | 
| - public:
 | 
| -  class TestAPI {
 | 
| -   public:
 | 
| -    explicit TestAPI(GoogleContactStore* store);
 | 
| -    ~TestAPI();
 | 
| -
 | 
| -    bool update_scheduled() { return store_->update_timer_.IsRunning(); }
 | 
| -    base::Time last_contact_update_time() const {
 | 
| -      return store_->last_contact_update_time_;
 | 
| -    }
 | 
| -    void set_current_time(const base::Time& time) {
 | 
| -      store_->current_time_for_testing_ = time;
 | 
| -    }
 | 
| -
 | 
| -    // Takes ownership of |db|. Must be called before Init().
 | 
| -    void SetDatabase(ContactDatabaseInterface* db);
 | 
| -
 | 
| -    // Takes ownership of |service|. Must be called before Init(). The caller is
 | 
| -    // responsible for calling |service|'s Initialize() method.
 | 
| -    void SetGDataService(GDataContactsServiceInterface* service);
 | 
| -
 | 
| -    // Triggers an update, similar to what happens when the update timer fires.
 | 
| -    void DoUpdate();
 | 
| -
 | 
| -    // Notifies the store that the system has gone online or offline.
 | 
| -    void NotifyAboutNetworkStateChange(bool online);
 | 
| -
 | 
| -    // Returns pointers to all of the contacts in the store's |contacts_|
 | 
| -    // member.
 | 
| -    scoped_ptr<ContactPointers> GetLoadedContacts();
 | 
| -
 | 
| -   private:
 | 
| -    GoogleContactStore* store_;  // not owned
 | 
| -
 | 
| -    DISALLOW_COPY_AND_ASSIGN(TestAPI);
 | 
| -  };
 | 
| -
 | 
| -  GoogleContactStore(
 | 
| -      net::URLRequestContextGetter* url_request_context_getter,
 | 
| -      Profile* profile);
 | 
| -  virtual ~GoogleContactStore();
 | 
| -
 | 
| -  // ContactStore implementation:
 | 
| -  virtual void Init() OVERRIDE;
 | 
| -  virtual void AppendContacts(ContactPointers* contacts_out) OVERRIDE;
 | 
| -  virtual const Contact* GetContactById(const std::string& contact_id) OVERRIDE;
 | 
| -  virtual void AddObserver(ContactStoreObserver* observer) OVERRIDE;
 | 
| -  virtual void RemoveObserver(ContactStoreObserver* observer) OVERRIDE;
 | 
| -
 | 
| -  // net::NetworkChangeNotifier::ConnectionTypeObserver implementation:
 | 
| -  virtual void OnConnectionTypeChanged(
 | 
| -      net::NetworkChangeNotifier::ConnectionType type) OVERRIDE;
 | 
| -
 | 
| - private:
 | 
| -  // Returns the current time. Uses |current_time_for_testing_| instead if it's
 | 
| -  // set.
 | 
| -  base::Time GetCurrentTime() const;
 | 
| -
 | 
| -  // Destroys |db_| if non-NULL and resets the pointer.
 | 
| -  // The underlying data is preserved on-disk.
 | 
| -  void DestroyDatabase();
 | 
| -
 | 
| -  // Asynchronously downloads updated contacts and merges them into |contacts_|.
 | 
| -  void UpdateContacts();
 | 
| -
 | 
| -  // Starts |update_timer_| so UpdateContacts() will be run.
 | 
| -  void ScheduleUpdate(bool last_update_was_successful);
 | 
| -
 | 
| -  // Moves |updated_contacts| into |contacts_| and updates
 | 
| -  // |last_contact_update_time_|.
 | 
| -  void MergeContacts(bool is_full_update,
 | 
| -                     scoped_ptr<ScopedVector<Contact> > updated_contacts);
 | 
| -
 | 
| -  // Handles a successful download, merging |updated_contacts| and saving the
 | 
| -  // updated contacts to |db_|.
 | 
| -  void OnDownloadSuccess(bool is_full_update,
 | 
| -                         const base::Time& update_start_time,
 | 
| -                         scoped_ptr<ScopedVector<Contact> > updated_contacts);
 | 
| -
 | 
| -  // Handles a failed update. A new update is scheduled.
 | 
| -  void OnDownloadFailure();
 | 
| -
 | 
| -  // Handles |db_|'s initialization. On success, we start loading the contacts
 | 
| -  // from the database; otherwise, we throw out the database and schedule an
 | 
| -  // update.
 | 
| -  void OnDatabaseInitialized(bool success);
 | 
| -
 | 
| -  // Handles contacts being loaded from |db_|. On success, we merge the loaded
 | 
| -  // contacts. No matter what, we call UpdateContacts().
 | 
| -  void OnDatabaseContactsLoaded(bool success,
 | 
| -                                scoped_ptr<ScopedVector<Contact> > contacts,
 | 
| -                                scoped_ptr<UpdateMetadata> metadata);
 | 
| -
 | 
| -  // Handles contacts being saved to |db_|. Now that the contacts are no longer
 | 
| -  // being accessed by the database, we schedule an update.
 | 
| -  void OnDatabaseContactsSaved(bool success);
 | 
| -
 | 
| -  net::URLRequestContextGetter* url_request_context_getter_;  // not owned
 | 
| -
 | 
| -  Profile* profile_;  // not owned
 | 
| -
 | 
| -  ObserverList<ContactStoreObserver> observers_;
 | 
| -
 | 
| -  // Owns the pointed-to Contact values.
 | 
| -  ContactMap contacts_;
 | 
| -
 | 
| -  // Most-recent time that an entry in |contacts_| has been updated (as reported
 | 
| -  // by Google).
 | 
| -  base::Time last_contact_update_time_;
 | 
| -
 | 
| -  // Used to download contacts.
 | 
| -  scoped_ptr<GDataContactsServiceInterface> gdata_service_;
 | 
| -
 | 
| -  // Used to save contacts to disk and load them at startup. Owns the object.
 | 
| -  ContactDatabaseInterface* db_;
 | 
| -
 | 
| -  // Used to schedule calls to UpdateContacts().
 | 
| -  base::OneShotTimer<GoogleContactStore> update_timer_;
 | 
| -
 | 
| -  // Time at which the last successful update was started.
 | 
| -  base::Time last_successful_update_start_time_;
 | 
| -
 | 
| -  // Amount of time that we'll wait before retrying the next time that an update
 | 
| -  // fails.
 | 
| -  base::TimeDelta update_delay_on_next_failure_;
 | 
| -
 | 
| -  // Do we believe that it's likely that we'll be able to make network
 | 
| -  // connections?
 | 
| -  bool is_online_;
 | 
| -
 | 
| -  // Should we call UpdateContacts() when |is_online_| becomes true?  Set when
 | 
| -  // UpdateContacts() is called while we're offline.
 | 
| -  bool should_update_when_online_;
 | 
| -
 | 
| -  // If non-null, used in place of base::Time::Now() when the current time is
 | 
| -  // needed.
 | 
| -  base::Time current_time_for_testing_;
 | 
| -
 | 
| -  // Note: This should remain the last member so it'll be destroyed and
 | 
| -  // invalidate its weak pointers before any other members are destroyed.
 | 
| -  base::WeakPtrFactory<GoogleContactStore> weak_ptr_factory_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(GoogleContactStore);
 | 
| -};
 | 
| -
 | 
| -// ContactStoreFactory implementation that returns GoogleContactStores.
 | 
| -class GoogleContactStoreFactory : public ContactStoreFactory {
 | 
| - public:
 | 
| -  GoogleContactStoreFactory();
 | 
| -  virtual ~GoogleContactStoreFactory();
 | 
| -
 | 
| -  // ContactStoreFactory implementation:
 | 
| -  virtual bool CanCreateContactStoreForProfile(Profile* profile) OVERRIDE;
 | 
| -  virtual ContactStore* CreateContactStore(Profile* profile) OVERRIDE;
 | 
| -
 | 
| - private:
 | 
| -  DISALLOW_COPY_AND_ASSIGN(GoogleContactStoreFactory);
 | 
| -};
 | 
| -
 | 
| -}  // namespace contacts
 | 
| -
 | 
| -#endif  // CHROME_BROWSER_CHROMEOS_CONTACTS_GOOGLE_CONTACT_STORE_H_
 | 
| 
 |