Home | History | Annotate | Download | only in profiler
      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.
     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 metrics
     38 
     39 #endif  // COMPONENTS_METRICS_PROFILER_TRACKING_SYNCHRONIZER_OBSERVER_H_
     40