Home | History | Annotate | Download | only in indexed_db
      1 // Copyright 2013 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_CHILD_INDEXED_DB_PROXY_WEBIDBDATABASE_IMPL_H_
      6 #define CONTENT_CHILD_INDEXED_DB_PROXY_WEBIDBDATABASE_IMPL_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/memory/ref_counted.h"
     10 #include "third_party/WebKit/public/platform/WebIDBDatabase.h"
     11 
     12 namespace WebKit {
     13 class WebIDBCallbacks;
     14 class WebIDBDatabaseCallbacks;
     15 class WebString;
     16 }
     17 
     18 namespace content {
     19 class ThreadSafeSender;
     20 
     21 class RendererWebIDBDatabaseImpl : public WebKit::WebIDBDatabase {
     22  public:
     23   RendererWebIDBDatabaseImpl(int32 ipc_database_id,
     24                              int32 ipc_database_callbacks_id,
     25                              ThreadSafeSender* thread_safe_sender);
     26   virtual ~RendererWebIDBDatabaseImpl();
     27 
     28   // WebKit::WebIDBDatabase
     29   virtual void createObjectStore(
     30       long long transaction_id,
     31       long long objectstore_id,
     32       const WebKit::WebString& name,
     33       const WebKit::WebIDBKeyPath& key_path,
     34       bool auto_increment);
     35   virtual void deleteObjectStore(
     36       long long transaction_id,
     37       long long object_store_id);
     38   virtual void createTransaction(
     39       long long transaction_id,
     40       WebKit::WebIDBDatabaseCallbacks* callbacks,
     41       const WebKit::WebVector<long long>& scope,
     42       unsigned short mode);
     43   virtual void close();
     44   virtual void get(long long transactionId,
     45                    long long objectStoreId,
     46                    long long indexId,
     47                    const WebKit::WebIDBKeyRange&,
     48                    bool keyOnly,
     49                    WebKit::WebIDBCallbacks*);
     50   virtual void put(long long transactionId,
     51                    long long objectStoreId,
     52                    const WebKit::WebData& value,
     53                    const WebKit::WebIDBKey&,
     54                    PutMode,
     55                    WebKit::WebIDBCallbacks*,
     56                    const WebKit::WebVector<long long>& indexIds,
     57                    const WebKit::WebVector<WebIndexKeys>&);
     58   virtual void setIndexKeys(long long transactionId,
     59                             long long objectStoreId,
     60                             const WebKit::WebIDBKey&,
     61                             const WebKit::WebVector<long long>& indexIds,
     62                             const WebKit::WebVector<WebIndexKeys>&);
     63   virtual void setIndexesReady(long long transactionId,
     64                                long long objectStoreId,
     65                                const WebKit::WebVector<long long>& indexIds);
     66   virtual void openCursor(long long transactionId,
     67                           long long objectStoreId,
     68                           long long indexId,
     69                           const WebKit::WebIDBKeyRange&,
     70                           unsigned short direction,
     71                           bool keyOnly,
     72                           TaskType,
     73                           WebKit::WebIDBCallbacks*);
     74   virtual void count(long long transactionId,
     75                      long long objectStoreId,
     76                      long long indexId,
     77                      const WebKit::WebIDBKeyRange&,
     78                      WebKit::WebIDBCallbacks*);
     79   virtual void deleteRange(long long transactionId,
     80                            long long objectStoreId,
     81                            const WebKit::WebIDBKeyRange&,
     82                            WebKit::WebIDBCallbacks*);
     83   virtual void clear(long long transactionId,
     84                      long long objectStoreId,
     85                      WebKit::WebIDBCallbacks*);
     86   virtual void createIndex(long long transactionId,
     87                            long long objectStoreId,
     88                            long long indexId,
     89                            const WebKit::WebString& name,
     90                            const WebKit::WebIDBKeyPath&,
     91                            bool unique,
     92                            bool multiEntry);
     93   virtual void deleteIndex(long long transactionId, long
     94                            long objectStoreId,
     95                            long long indexId);
     96   virtual void abort(long long transaction_id);
     97   virtual void commit(long long transaction_id);
     98 
     99  private:
    100   int32 ipc_database_id_;
    101   int32 ipc_database_callbacks_id_;
    102   scoped_refptr<ThreadSafeSender> thread_safe_sender_;
    103 };
    104 
    105 }  // namespace content
    106 
    107 #endif  // CONTENT_CHILD_INDEXED_DB_PROXY_WEBIDBDATABASE_IMPL_H_
    108