- add sources.
[platform/framework/web/crosswalk.git] / src / content / child / indexed_db / indexed_db_message_filter.h
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_INDEXED_DB_MESSAGE_FILTER_H_
6 #define CONTENT_CHILD_INDEXED_DB_INDEXED_DB_MESSAGE_FILTER_H_
7
8 #include "ipc/ipc_channel_proxy.h"
9
10 struct IndexedDBDatabaseMetadata;
11 struct IndexedDBMsg_CallbacksUpgradeNeeded_Params;
12
13 namespace base {
14 class MessageLoopProxy;
15 }  // namespace base
16
17 namespace content {
18 class IndexedDBDispatcher;
19 class ThreadSafeSender;
20
21 class IndexedDBMessageFilter : public IPC::ChannelProxy::MessageFilter {
22  public:
23   explicit IndexedDBMessageFilter(ThreadSafeSender* thread_safe_sender);
24
25   // IPC::Listener implementation.
26   virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
27
28  protected:
29   virtual ~IndexedDBMessageFilter();
30
31  private:
32   void DispatchMessage(const IPC::Message& msg);
33   void OnStaleMessageReceived(const IPC::Message& msg);
34   void OnStaleSuccessIDBDatabase(int32 ipc_thread_id,
35                                  int32 ipc_callbacks_id,
36                                  int32 ipc_database_callbacks_id,
37                                  int32 ipc_object_id,
38                                  const IndexedDBDatabaseMetadata&);
39   void OnStaleUpgradeNeeded(const IndexedDBMsg_CallbacksUpgradeNeeded_Params&);
40
41   scoped_refptr<base::MessageLoopProxy> main_thread_loop_proxy_;
42   scoped_refptr<ThreadSafeSender> thread_safe_sender_;
43
44   DISALLOW_COPY_AND_ASSIGN(IndexedDBMessageFilter);
45 };
46
47 }  // namespace content
48
49 #endif  // CONTENT_CHILD_INDEXED_DB_INDEXED_DB_MESSAGE_FILTER_H_