Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: sql/mojo/mojo_vfs.cc

Issue 1550693002: Global conversion of Pass()→std::move() on Linux (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sql/connection.cc ('k') | sql/mojo/sql_test_base.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "sql/mojo/mojo_vfs.h" 5 #include "sql/mojo/mojo_vfs.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <utility>
9 10
10 #include "base/logging.h" 11 #include "base/logging.h"
11 #include "base/rand_util.h" 12 #include "base/rand_util.h"
12 #include "base/strings/stringprintf.h" 13 #include "base/strings/stringprintf.h"
13 #include "base/trace_event/trace_event.h" 14 #include "base/trace_event/trace_event.h"
14 #include "components/filesystem/public/interfaces/file.mojom.h" 15 #include "components/filesystem/public/interfaces/file.mojom.h"
15 #include "components/filesystem/public/interfaces/file_system.mojom.h" 16 #include "components/filesystem/public/interfaces/file_system.mojom.h"
16 #include "components/filesystem/public/interfaces/types.mojom.h" 17 #include "components/filesystem/public/interfaces/types.mojom.h"
17 #include "mojo/public/cpp/bindings/lib/template_util.h" 18 #include "mojo/public/cpp/bindings/lib/template_util.h"
18 #include "mojo/util/capture_util.h" 19 #include "mojo/util/capture_util.h"
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 const void* buffer, 110 const void* buffer,
110 int size, 111 int size,
111 sqlite_int64 offset) { 112 sqlite_int64 offset) {
112 DVLOG(1) << "MojoVFSWrite(*, " << size << ", " << offset << ")"; 113 DVLOG(1) << "MojoVFSWrite(*, " << size << ", " << offset << ")";
113 TRACE_EVENT0("sql", "MojoVFSWrite"); 114 TRACE_EVENT0("sql", "MojoVFSWrite");
114 mojo::Array<uint8_t> mojo_data(size); 115 mojo::Array<uint8_t> mojo_data(size);
115 memcpy(&mojo_data.front(), buffer, size); 116 memcpy(&mojo_data.front(), buffer, size);
116 117
117 filesystem::FileError error = filesystem::FILE_ERROR_FAILED; 118 filesystem::FileError error = filesystem::FILE_ERROR_FAILED;
118 uint32_t num_bytes_written = 0; 119 uint32_t num_bytes_written = 0;
119 GetFSFile(sql_file)->Write(mojo_data.Pass(), offset, 120 GetFSFile(sql_file)->Write(std::move(mojo_data), offset,
120 filesystem::WHENCE_FROM_BEGIN, 121 filesystem::WHENCE_FROM_BEGIN,
121 Capture(&error, &num_bytes_written)); 122 Capture(&error, &num_bytes_written));
122 GetFSFile(sql_file).WaitForIncomingResponse(); 123 GetFSFile(sql_file).WaitForIncomingResponse();
123 if (error != filesystem::FILE_ERROR_OK) { 124 if (error != filesystem::FILE_ERROR_OK) {
124 // TODO(erg): Better implementation here. 125 // TODO(erg): Better implementation here.
125 NOTIMPLEMENTED(); 126 NOTIMPLEMENTED();
126 return SQLITE_IOERR_WRITE; 127 return SQLITE_IOERR_WRITE;
127 } 128 }
128 if (num_bytes_written != static_cast<uint32_t>(size)) { 129 if (num_bytes_written != static_cast<uint32_t>(size)) {
129 NOTIMPLEMENTED(); 130 NOTIMPLEMENTED();
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 return SQLITE_CANTOPEN; 293 return SQLITE_CANTOPEN;
293 } 294 }
294 295
295 // Set the method table so we can be closed (and run the manual dtor call to 296 // Set the method table so we can be closed (and run the manual dtor call to
296 // match the following placement news). 297 // match the following placement news).
297 file->pMethods = &mojo_vfs_io_methods; 298 file->pMethods = &mojo_vfs_io_methods;
298 299
299 // |file| is actually a malloced buffer of size szOsFile. This means that we 300 // |file| is actually a malloced buffer of size szOsFile. This means that we
300 // need to manually use placement new to construct the C++ object which owns 301 // need to manually use placement new to construct the C++ object which owns
301 // the pipe to our file. 302 // the pipe to our file.
302 new (&GetFSFile(file)) filesystem::FilePtr(file_ptr.Pass()); 303 new (&GetFSFile(file)) filesystem::FilePtr(std::move(file_ptr));
303 304
304 return SQLITE_OK; 305 return SQLITE_OK;
305 } 306 }
306 307
307 int MojoVFSDelete(sqlite3_vfs* mojo_vfs, const char* filename, int sync_dir) { 308 int MojoVFSDelete(sqlite3_vfs* mojo_vfs, const char* filename, int sync_dir) {
308 DVLOG(1) << "MojoVFSDelete(*, " << filename << ", " << sync_dir << ")"; 309 DVLOG(1) << "MojoVFSDelete(*, " << filename << ", " << sync_dir << ")";
309 TRACE_EVENT2("sql", "MojoVFSDelete", 310 TRACE_EVENT2("sql", "MojoVFSDelete",
310 "name", filename, 311 "name", filename,
311 "sync_dir", sync_dir); 312 "sync_dir", sync_dir);
312 // TODO(erg): The default windows sqlite VFS has retry code to work around 313 // TODO(erg): The default windows sqlite VFS has retry code to work around
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 MojoVFSCurrentTime, /* xCurrentTime */ 425 MojoVFSCurrentTime, /* xCurrentTime */
425 MojoVFSGetLastError, /* xGetLastError */ 426 MojoVFSGetLastError, /* xGetLastError */
426 MojoVFSCurrentTimeInt64 /* xCurrentTimeInt64 */ 427 MojoVFSCurrentTimeInt64 /* xCurrentTimeInt64 */
427 }; 428 };
428 429
429 } // namespace 430 } // namespace
430 431
431 ScopedMojoFilesystemVFS::ScopedMojoFilesystemVFS( 432 ScopedMojoFilesystemVFS::ScopedMojoFilesystemVFS(
432 filesystem::DirectoryPtr root_directory) 433 filesystem::DirectoryPtr root_directory)
433 : parent_(sqlite3_vfs_find(NULL)), 434 : parent_(sqlite3_vfs_find(NULL)),
434 root_directory_(root_directory.Pass()) { 435 root_directory_(std::move(root_directory)) {
435 CHECK(!mojo_vfs.pAppData); 436 CHECK(!mojo_vfs.pAppData);
436 mojo_vfs.pAppData = this; 437 mojo_vfs.pAppData = this;
437 mojo_vfs.mxPathname = parent_->mxPathname; 438 mojo_vfs.mxPathname = parent_->mxPathname;
438 439
439 CHECK(sqlite3_vfs_register(&mojo_vfs, 1) == SQLITE_OK); 440 CHECK(sqlite3_vfs_register(&mojo_vfs, 1) == SQLITE_OK);
440 } 441 }
441 442
442 ScopedMojoFilesystemVFS::~ScopedMojoFilesystemVFS() { 443 ScopedMojoFilesystemVFS::~ScopedMojoFilesystemVFS() {
443 CHECK(mojo_vfs.pAppData); 444 CHECK(mojo_vfs.pAppData);
444 mojo_vfs.pAppData = nullptr; 445 mojo_vfs.pAppData = nullptr;
445 446
446 CHECK(sqlite3_vfs_register(parent_, 1) == SQLITE_OK); 447 CHECK(sqlite3_vfs_register(parent_, 1) == SQLITE_OK);
447 CHECK(sqlite3_vfs_unregister(&mojo_vfs) == SQLITE_OK); 448 CHECK(sqlite3_vfs_unregister(&mojo_vfs) == SQLITE_OK);
448 } 449 }
449 450
450 filesystem::DirectoryPtr& ScopedMojoFilesystemVFS::GetDirectory() { 451 filesystem::DirectoryPtr& ScopedMojoFilesystemVFS::GetDirectory() {
451 return root_directory_; 452 return root_directory_;
452 } 453 }
453 454
454 } // namespace sql 455 } // namespace sql
OLDNEW
« no previous file with comments | « sql/connection.cc ('k') | sql/mojo/sql_test_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698