// 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_