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.
5 #ifndef CHROME_BROWSER_METRICS_TRACKING_SYNCHRONIZER_OBSERVER_H_
6 #define CHROME_BROWSER_METRICS_TRACKING_SYNCHRONIZER_OBSERVER_H_
8 namespace tracked_objects
{
9 struct ProcessDataSnapshot
;
12 namespace chrome_browser_metrics
{
14 // Observer for notifications from the TrackingSynchronizer class.
15 class TrackingSynchronizerObserver
{
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;
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() {}
30 TrackingSynchronizerObserver() {}
31 virtual ~TrackingSynchronizerObserver() {}
34 DISALLOW_COPY_AND_ASSIGN(TrackingSynchronizerObserver
);
37 } // namespace chrome_browser_metrics
39 #endif // CHROME_BROWSER_METRICS_TRACKING_SYNCHRONIZER_OBSERVER_H_