blob: f70537b41dd94bba890bcef4876ed239858b39d2 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef BASE_TRACE_EVENT_PROCESS_MEMORY_DUMP_H_
#define BASE_TRACE_EVENT_PROCESS_MEMORY_DUMP_H_
#include "base/base_export.h"
#include "base/trace_event/process_memory_totals.h"
namespace base {
namespace trace_event {
class ConvertableToTraceFormat;
// ProcessMemoryDump is as a strongly typed container which enforces the data
// model for each memory dump point and holds the dumps produced by the
// MemoryDumpProvider(s) for a specific process.
// At trace generation time (i.e. when AsValue() is called), ProcessMemoryDump
// will compose a key-value dictionary of the various dumps obtained at trace
// dump point time.
class BASE_EXPORT ProcessMemoryDump {
public:
ProcessMemoryDump();
~ProcessMemoryDump();
// Called at trace generation time to populate the TracedValue.
void AsValueInto(TracedValue* value) const;
ProcessMemoryTotals* process_totals() { return &process_totals_; }
bool has_process_totals() const { return has_process_totals_; }
void set_has_process_totals() { has_process_totals_ = true; }
private:
ProcessMemoryTotals process_totals_;
bool has_process_totals_;
DISALLOW_COPY_AND_ASSIGN(ProcessMemoryDump);
};
} // namespace trace_event
} // namespace base
#endif // BASE_TRACE_EVENT_PROCESS_MEMORY_DUMP_H_