blob: ffb932b6ca766b23007b769f4935d8d473f6bee1 [file] [log] [blame]
ssid9f8022f2015-10-12 17:49:031// Copyright 2015 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
Lei Zhang02f91da2021-04-26 19:47:385#ifndef SQL_SQL_MEMORY_DUMP_PROVIDER_H_
6#define SQL_SQL_MEMORY_DUMP_PROVIDER_H_
ssid9f8022f2015-10-12 17:49:037
Victor Costane56cc682018-12-27 01:53:468#include "base/component_export.h"
ssid9f8022f2015-10-12 17:49:039#include "base/memory/singleton.h"
10#include "base/trace_event/memory_dump_provider.h"
ssid9f8022f2015-10-12 17:49:0311
12namespace sql {
13
14// Adds process-wide memory usage statistics about sqlite to chrome://tracing.
Victor Costancfbfa602018-08-01 23:24:4615// sql::Database::OnMemoryDump adds per-connection memory statistics.
Victor Costane56cc682018-12-27 01:53:4616class COMPONENT_EXPORT(SQL) SqlMemoryDumpProvider
ssid9f8022f2015-10-12 17:49:0317 : public base::trace_event::MemoryDumpProvider {
18 public:
19 static SqlMemoryDumpProvider* GetInstance();
20
Victor Costan00c76432021-07-07 16:55:5821 SqlMemoryDumpProvider(const SqlMemoryDumpProvider&) = delete;
22 SqlMemoryDumpProvider& operator=(const SqlMemoryDumpProvider&) = delete;
23
ssid9f8022f2015-10-12 17:49:0324 // MemoryDumpProvider implementation.
25 bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args,
26 base::trace_event::ProcessMemoryDump* pmd) override;
27
28 private:
29 friend struct base::DefaultSingletonTraits<SqlMemoryDumpProvider>;
30
31 SqlMemoryDumpProvider();
32 ~SqlMemoryDumpProvider() override;
ssid9f8022f2015-10-12 17:49:0333};
34
35} // namespace sql
36
Lei Zhang02f91da2021-04-26 19:47:3837#endif // SQL_SQL_MEMORY_DUMP_PROVIDER_H_