1 // Copyright (c) 2012 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_METRICS_TRACKING_SYNCHRONIZER_OBSERVER_H_ 6 #define CHROME_BROWSER_METRICS_TRACKING_SYNCHRONIZER_OBSERVER_H_ 7 8 namespace tracked_objects { 9 struct ProcessDataSnapshot; 10 } 11 12 namespace chrome_browser_metrics { 13 14 // Observer for notifications from the TrackingSynchronizer class. 15 class TrackingSynchronizerObserver { 16 public: 17 // Received |profiler_data| from a single process of |process_type|. 18 // The observer should assume there might be more data coming until 19 // |FinishedReceivingData()| is called. 20 virtual void ReceivedProfilerData( 21 const tracked_objects::ProcessDataSnapshot& profiler_data, 22 int process_type) = 0; 23 24 // The observer should not expect any more calls to |ReceivedProfilerData()| 25 // (without re-registering). This is sent either when data from all processes 26 // has been gathered, or when the request times out. 27 virtual void FinishedReceivingProfilerData() {} 28 29 protected: 30 TrackingSynchronizerObserver() {} 31 virtual ~TrackingSynchronizerObserver() {} 32 33 private: 34 DISALLOW_COPY_AND_ASSIGN(TrackingSynchronizerObserver); 35 }; 36 37 } // namespace chrome_browser_metrics 38 39 #endif // CHROME_BROWSER_METRICS_TRACKING_SYNCHRONIZER_OBSERVER_H_ 40