• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 COMPONENTS_METRICS_PROFILER_TRACKING_SYNCHRONIZER_OBSERVER_H_
6 #define COMPONENTS_METRICS_PROFILER_TRACKING_SYNCHRONIZER_OBSERVER_H_
7 
8 namespace tracked_objects {
9 struct ProcessDataSnapshot;
10 }
11 
12 namespace 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.
FinishedReceivingProfilerData()27   virtual void FinishedReceivingProfilerData() {}
28 
29  protected:
TrackingSynchronizerObserver()30   TrackingSynchronizerObserver() {}
~TrackingSynchronizerObserver()31   virtual ~TrackingSynchronizerObserver() {}
32 
33  private:
34   DISALLOW_COPY_AND_ASSIGN(TrackingSynchronizerObserver);
35 };
36 
37 }  // namespace metrics
38 
39 #endif  // COMPONENTS_METRICS_PROFILER_TRACKING_SYNCHRONIZER_OBSERVER_H_
40