OLD | NEW |
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 "chrome/utility/importer/edge_database_reader_win.h" | 5 #include "chrome/utility/importer/edge_database_reader_win.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
| 13 #include "base/memory/ptr_util.h" |
| 14 |
13 namespace { | 15 namespace { |
14 | 16 |
15 // This is an arbitary size chosen for the database error message buffer. | 17 // This is an arbitary size chosen for the database error message buffer. |
16 const size_t kErrorMessageSize = 1024; | 18 const size_t kErrorMessageSize = 1024; |
17 // This is the page size of the Edge data. It's unlikely to change. | 19 // This is the page size of the Edge data. It's unlikely to change. |
18 const JET_API_PTR kEdgeDatabasePageSize = 8192; | 20 const JET_API_PTR kEdgeDatabasePageSize = 8192; |
19 // This is the code page value for a Unicode (UCS-2) column. | 21 // This is the code page value for a Unicode (UCS-2) column. |
20 const unsigned short kJetUnicodeCodePage = 1200; | 22 const unsigned short kJetUnicodeCodePage = 1200; |
21 | 23 |
22 template <typename T> | 24 template <typename T> |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 return false; | 236 return false; |
235 if (!SetLastError(JetAttachDatabase2(session_id_, database_file.c_str(), 0, | 237 if (!SetLastError(JetAttachDatabase2(session_id_, database_file.c_str(), 0, |
236 JET_bitDbReadOnly))) | 238 JET_bitDbReadOnly))) |
237 return false; | 239 return false; |
238 if (!SetLastError(JetOpenDatabase(session_id_, database_file.c_str(), nullptr, | 240 if (!SetLastError(JetOpenDatabase(session_id_, database_file.c_str(), nullptr, |
239 &db_id_, JET_bitDbReadOnly))) | 241 &db_id_, JET_bitDbReadOnly))) |
240 return false; | 242 return false; |
241 return true; | 243 return true; |
242 } | 244 } |
243 | 245 |
244 scoped_ptr<EdgeDatabaseTableEnumerator> EdgeDatabaseReader::OpenTableEnumerator( | 246 std::unique_ptr<EdgeDatabaseTableEnumerator> |
245 const base::string16& table_name) { | 247 EdgeDatabaseReader::OpenTableEnumerator(const base::string16& table_name) { |
246 JET_TABLEID table_id; | 248 JET_TABLEID table_id; |
247 | 249 |
248 if (!IsOpen()) { | 250 if (!IsOpen()) { |
249 SetLastError(JET_errDatabaseNotFound); | 251 SetLastError(JET_errDatabaseNotFound); |
250 return nullptr; | 252 return nullptr; |
251 } | 253 } |
252 | 254 |
253 if (!SetLastError(JetOpenTable(session_id_, db_id_, table_name.c_str(), | 255 if (!SetLastError(JetOpenTable(session_id_, db_id_, table_name.c_str(), |
254 nullptr, 0, JET_bitTableReadOnly, &table_id))) | 256 nullptr, 0, JET_bitTableReadOnly, &table_id))) |
255 return nullptr; | 257 return nullptr; |
256 | 258 |
257 return make_scoped_ptr( | 259 return base::WrapUnique( |
258 new EdgeDatabaseTableEnumerator(table_name, session_id_, table_id)); | 260 new EdgeDatabaseTableEnumerator(table_name, session_id_, table_id)); |
259 } | 261 } |
OLD | NEW |