chromium/components/sqlite_proto/table_manager.h

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_SQLITE_PROTO_TABLE_MANAGER_H_
#define COMPONENTS_SQLITE_PROTO_TABLE_MANAGER_H_

#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/ref_counted.h"
#include "base/synchronization/atomic_flag.h"

namespace base {
class Location;
class SequencedTaskRunner;
}  // namespace base

namespace sql {
class Database;
}

namespace sqlite_proto {

// Base class encapsulating database operation scheduling and management, scoped
// to a collection of tables (possibly, but not necessarily, all of the
// database's tables).
//
// Refcounted as it is created and destroyed in the main thread (e.g., the UI
// thread in the browser process) but all database related functions need to
// happen in the database sequence. The task runner for this sequence is
// provided by the client to the constructor of this class.
class TableManager : public base::RefCountedThreadSafe<TableManager> {};

}  // namespace sqlite_proto

#endif  // COMPONENTS_SQLITE_PROTO_TABLE_MANAGER_H_