1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_SYNC_TEST_INTEGRATION_P2P_INVALIDATION_FORWARDER_H_ 6 #define CHROME_BROWSER_SYNC_TEST_INTEGRATION_P2P_INVALIDATION_FORWARDER_H_ 7 8 #include "base/basictypes.h" 9 #include "base/compiler_specific.h" 10 #include "chrome/browser/sync/profile_sync_service_observer.h" 11 12 class ProfileSyncService; 13 14 namespace invalidation { 15 class P2PInvalidationService; 16 }; 17 18 // This class links the ProfileSyncService to a P2PInvalidationService. 19 // 20 // It will observe ProfileSyncService events and emit invalidation events for 21 // any committed changes in observes. 22 // 23 // It register and unregisters in its constructor and destructor. This is 24 // intended to make it easy to manage with a scoped_ptr. 25 class P2PInvalidationForwarder : public ProfileSyncServiceObserver { 26 public: 27 P2PInvalidationForwarder( 28 ProfileSyncService* sync_service, 29 invalidation::P2PInvalidationService* invalidation_service); 30 virtual ~P2PInvalidationForwarder(); 31 32 // Implementation of ProfileSyncServiceObserver 33 virtual void OnStateChanged() OVERRIDE; 34 virtual void OnSyncCycleCompleted() OVERRIDE; 35 36 private: 37 ProfileSyncService* sync_service_; 38 invalidation::P2PInvalidationService* invalidation_service_; 39 40 DISALLOW_COPY_AND_ASSIGN(P2PInvalidationForwarder); 41 }; 42 43 #endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_P2P_INVALIDATION_FORWARDER_H_ 44