• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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 #include "content/child/database_util.h"
6 
7 #include "content/common/database_messages.h"
8 #include "ipc/ipc_sync_message_filter.h"
9 #include "third_party/WebKit/public/platform/WebString.h"
10 #include "third_party/sqlite/sqlite3.h"
11 
12 using blink::Platform;
13 using blink::WebString;
14 
15 namespace content {
16 
DatabaseOpenFile(const WebString & vfs_file_name,int desired_flags,IPC::SyncMessageFilter * sync_message_filter)17 Platform::FileHandle DatabaseUtil::DatabaseOpenFile(
18     const WebString& vfs_file_name,
19     int desired_flags,
20     IPC::SyncMessageFilter* sync_message_filter) {
21   IPC::PlatformFileForTransit file_handle =
22       IPC::InvalidPlatformFileForTransit();
23 
24   scoped_refptr<IPC::SyncMessageFilter> filter(sync_message_filter);
25   filter->Send(new DatabaseHostMsg_OpenFile(
26       vfs_file_name, desired_flags, &file_handle));
27 
28   return IPC::PlatformFileForTransitToPlatformFile(file_handle);
29 }
30 
DatabaseDeleteFile(const WebString & vfs_file_name,bool sync_dir,IPC::SyncMessageFilter * sync_message_filter)31 int DatabaseUtil::DatabaseDeleteFile(
32     const WebString& vfs_file_name,
33     bool sync_dir,
34     IPC::SyncMessageFilter* sync_message_filter) {
35   int rv = SQLITE_IOERR_DELETE;
36   scoped_refptr<IPC::SyncMessageFilter> filter(sync_message_filter);
37   filter->Send(new DatabaseHostMsg_DeleteFile(
38       vfs_file_name, sync_dir, &rv));
39   return rv;
40 }
41 
DatabaseGetFileAttributes(const WebString & vfs_file_name,IPC::SyncMessageFilter * sync_message_filter)42 long DatabaseUtil::DatabaseGetFileAttributes(
43     const WebString& vfs_file_name,
44     IPC::SyncMessageFilter* sync_message_filter) {
45   int32 rv = -1;
46   scoped_refptr<IPC::SyncMessageFilter> filter(sync_message_filter);
47   filter->Send(new DatabaseHostMsg_GetFileAttributes(vfs_file_name, &rv));
48   return rv;
49 }
50 
DatabaseGetFileSize(const WebString & vfs_file_name,IPC::SyncMessageFilter * sync_message_filter)51 long long DatabaseUtil::DatabaseGetFileSize(
52     const WebString& vfs_file_name,
53     IPC::SyncMessageFilter* sync_message_filter) {
54   int64 rv = 0LL;
55   scoped_refptr<IPC::SyncMessageFilter> filter(sync_message_filter);
56   filter->Send(new DatabaseHostMsg_GetFileSize(vfs_file_name, &rv));
57   return rv;
58 }
59 
DatabaseGetSpaceAvailable(const WebString & origin_identifier,IPC::SyncMessageFilter * sync_message_filter)60 long long DatabaseUtil::DatabaseGetSpaceAvailable(
61     const WebString& origin_identifier,
62     IPC::SyncMessageFilter* sync_message_filter) {
63   int64 rv = 0LL;
64   scoped_refptr<IPC::SyncMessageFilter> filter(sync_message_filter);
65   filter->Send(new DatabaseHostMsg_GetSpaceAvailable(origin_identifier.utf8(),
66                                                      &rv));
67   return rv;
68 }
69 
70 }  // namespace content
71