#ifndef SQL_SQL_MEMORY_DUMP_PROVIDER_H_
#define SQL_SQL_MEMORY_DUMP_PROVIDER_H_
#include <cstdint>
#include "base/component_export.h"
#include "base/memory/singleton.h"
#include "base/trace_event/memory_dump_provider.h"
namespace base::trace_event {
struct MemoryDumpArgs;
}
namespace sql {
class COMPONENT_EXPORT(SQL) SqlMemoryDumpProvider
: public base::trace_event::MemoryDumpProvider {
public:
static SqlMemoryDumpProvider* GetInstance();
static int64_t GetMemoryUse(int64_t* high_water = nullptr);
SqlMemoryDumpProvider(const SqlMemoryDumpProvider&) = delete;
SqlMemoryDumpProvider& operator=(const SqlMemoryDumpProvider&) = delete;
bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args,
base::trace_event::ProcessMemoryDump* pmd) override;
private:
friend struct base::DefaultSingletonTraits<SqlMemoryDumpProvider>;
SqlMemoryDumpProvider();
~SqlMemoryDumpProvider() override;
};
}
#endif