sql_memory_dump_provider.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // 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. #ifndef SQL_SQL_MEMORY_DUMP_PROVIDER_H_
  5. #define SQL_SQL_MEMORY_DUMP_PROVIDER_H_
  6. #include "base/component_export.h"
  7. #include "base/memory/singleton.h"
  8. #include "base/trace_event/memory_dump_provider.h"
  9. namespace sql {
  10. // Adds process-wide memory usage statistics about sqlite to chrome://tracing.
  11. // sql::Database::OnMemoryDump adds per-connection memory statistics.
  12. class COMPONENT_EXPORT(SQL) SqlMemoryDumpProvider
  13. : public base::trace_event::MemoryDumpProvider {
  14. public:
  15. static SqlMemoryDumpProvider* GetInstance();
  16. SqlMemoryDumpProvider(const SqlMemoryDumpProvider&) = delete;
  17. SqlMemoryDumpProvider& operator=(const SqlMemoryDumpProvider&) = delete;
  18. // MemoryDumpProvider implementation.
  19. bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args,
  20. base::trace_event::ProcessMemoryDump* pmd) override;
  21. private:
  22. friend struct base::DefaultSingletonTraits<SqlMemoryDumpProvider>;
  23. SqlMemoryDumpProvider();
  24. ~SqlMemoryDumpProvider() override;
  25. };
  26. } // namespace sql
  27. #endif // SQL_SQL_MEMORY_DUMP_PROVIDER_H_