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 CONTENT_PUBLIC_BROWSER_PROFILER_SUBSCRIBER_H_ 6#define CONTENT_PUBLIC_BROWSER_PROFILER_SUBSCRIBER_H_ 7 8#include "content/common/content_export.h" 9 10namespace tracked_objects { 11struct ProcessDataSnapshot; 12} 13 14namespace content { 15 16// Objects interested in receiving profiler data derive from ProfilerSubscriber. 17class CONTENT_EXPORT ProfilerSubscriber { 18 public: 19 // Send number of pending processes to subscriber. |end| is set to true if it 20 // is the last time. This is called on the UI thread. 21 virtual void OnPendingProcesses(int sequence_number, 22 int pending_processes, 23 bool end) = 0; 24 25 // Send |profiler_data| back to subscriber. 26 // This is called on the UI thread. 27 virtual void OnProfilerDataCollected( 28 int sequence_number, 29 const tracked_objects::ProcessDataSnapshot& profiler_data, 30 int process_type) = 0; 31 32 protected: 33 virtual ~ProfilerSubscriber() {} 34}; 35 36} // namespace content 37 38#endif // CONTENT_PUBLIC_BROWSER_PROFILER_SUBSCRIBER_H_ 39