| OLD | NEW | 
|---|
|  | (Empty) | 
| 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 SYNC_TEST_ENGINE_INJECTABLE_SYNC_CORE_PROXY_H_ |  | 
| 6 #define SYNC_TEST_ENGINE_INJECTABLE_SYNC_CORE_PROXY_H_ |  | 
| 7 |  | 
| 8 #include "sync/internal_api/public/base/model_type.h" |  | 
| 9 #include "sync/internal_api/public/sync_core_proxy.h" |  | 
| 10 |  | 
| 11 namespace syncer { |  | 
| 12 |  | 
| 13 struct DataTypeState; |  | 
| 14 class NonBlockingTypeProcessor; |  | 
| 15 class NonBlockingTypeProcessorCoreInterface; |  | 
| 16 |  | 
| 17 // A SyncCoreProxy implementation that, when a connection request is made, |  | 
| 18 // initalizes a connection to a previously injected NonBlockingTypeProcessor. |  | 
| 19 class InjectableSyncCoreProxy : public syncer::SyncCoreProxy { |  | 
| 20  public: |  | 
| 21   explicit InjectableSyncCoreProxy(NonBlockingTypeProcessorCoreInterface* core); |  | 
| 22   virtual ~InjectableSyncCoreProxy(); |  | 
| 23 |  | 
| 24   virtual void ConnectTypeToCore( |  | 
| 25       syncer::ModelType type, |  | 
| 26       const DataTypeState& data_type_state, |  | 
| 27       base::WeakPtr<syncer::NonBlockingTypeProcessor> type_processor) OVERRIDE; |  | 
| 28   virtual void Disconnect(syncer::ModelType type) OVERRIDE; |  | 
| 29   virtual scoped_ptr<SyncCoreProxy> Clone() const OVERRIDE; |  | 
| 30 |  | 
| 31   NonBlockingTypeProcessorCoreInterface* GetProcessorCore(); |  | 
| 32 |  | 
| 33  private: |  | 
| 34   // A flag to ensure ConnectTypeToCore is called at most once. |  | 
| 35   bool is_core_connected_; |  | 
| 36 |  | 
| 37   // The NonBlockingTypeProcessor's contract expects that it gets to own this |  | 
| 38   // object, so we can retain only a non-owned pointer to it. |  | 
| 39   // |  | 
| 40   // This is very unsafe, but we can get away with it since these tests are not |  | 
| 41   // exercising the processor <-> processor_core connection code. |  | 
| 42   NonBlockingTypeProcessorCoreInterface* processor_core_; |  | 
| 43 }; |  | 
| 44 |  | 
| 45 }  // namespace syncer |  | 
| 46 |  | 
| 47 #endif  // SYNC_TEST_ENGINE_INJECTABLE_SYNC_CORE_PROXY_H_ |  | 
| OLD | NEW | 
|---|