1// Copyright (c) 2012 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
5#ifndef CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_DATABASE_CALLBACKS_H_
6#define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_DATABASE_CALLBACKS_H_
7
8#include "base/basictypes.h"
9#include "base/memory/ref_counted.h"
10#include "content/common/content_export.h"
11
12namespace content {
13class IndexedDBDatabaseError;
14class IndexedDBDispatcherHost;
15
16class CONTENT_EXPORT IndexedDBDatabaseCallbacks
17    : public base::RefCounted<IndexedDBDatabaseCallbacks> {
18 public:
19  IndexedDBDatabaseCallbacks(IndexedDBDispatcherHost* dispatcher_host,
20                             int ipc_thread_id,
21                             int ipc_database_callbacks_id);
22
23  virtual void OnForcedClose();
24  virtual void OnVersionChange(int64 old_version, int64 new_version);
25
26  virtual void OnAbort(int64 host_transaction_id,
27                       const IndexedDBDatabaseError& error);
28  virtual void OnComplete(int64 host_transaction_id);
29
30 protected:
31  virtual ~IndexedDBDatabaseCallbacks();
32
33 private:
34  friend class base::RefCounted<IndexedDBDatabaseCallbacks>;
35
36  scoped_refptr<IndexedDBDispatcherHost> dispatcher_host_;
37  int ipc_thread_id_;
38  int ipc_database_callbacks_id_;
39
40  DISALLOW_COPY_AND_ASSIGN(IndexedDBDatabaseCallbacks);
41};
42
43}  // namespace content
44
45#endif  // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_DATABASE_CALLBACKS_H_
46