summaryrefslogtreecommitdiffstats
path: root/webkit/tools/test_shell/simple_database_system.h
blob: cf8c9978b5daaf9e055e34e7a110be46e7fdea1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright (c) 2009 The Chromium Authors. All rights reserved.  Use of this
// source code is governed by a BSD-style license that can be found in the
// LICENSE file.

#ifndef WEBKIT_TOOLS_TEST_SHELL_SIMPLE_DATABASE_SYSTEM_H_
#define WEBKIT_TOOLS_TEST_SHELL_SIMPLE_DATABASE_SYSTEM_H_

#include "base/file_path.h"
#include "base/platform_file.h"
#include "base/scoped_temp_dir.h"

class SimpleDatabaseSystem {
 public:
  static SimpleDatabaseSystem* GetInstance();
  SimpleDatabaseSystem();
  ~SimpleDatabaseSystem();

  base::PlatformFile OpenFile(
      const FilePath& file_name, int desired_flags,
      base::PlatformFile* dir_handle);
  int DeleteFile(const FilePath& file_name, bool sync_dir);
  long GetFileAttributes(const FilePath& file_name);
  long long GetFileSize(const FilePath& file_name);
  void ClearAllDatabases();

 private:
  FilePath GetDBDir();
  FilePath GetDBFileFullPath(const FilePath& file_name);

  static SimpleDatabaseSystem* instance_;

  ScopedTempDir temp_dir_;

  // HACK: see OpenFile's implementation
  base::PlatformFile hack_main_db_handle_;
};

#endif  // WEBKIT_TOOLS_TEST_SHELL_SIMPLE_DATABASE_SYSTEM_H_