1// Copyright (c) 2010 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 STORAGE_BROWSER_DATABASE_DATABASE_UTIL_H_
6#define STORAGE_BROWSER_DATABASE_DATABASE_UTIL_H_
7
8#include <string>
9#include "base/strings/string16.h"
10#include "storage/browser/storage_browser_export.h"
11#include "url/gurl.h"
12
13namespace base {
14class FilePath;
15}
16
17namespace storage {
18
19class DatabaseTracker;
20
21class STORAGE_EXPORT DatabaseUtil {
22 public:
23  static const char kJournalFileSuffix[];
24
25  // Extract various information from a database vfs_file_name.  All return
26  // parameters are optional.
27  static bool CrackVfsFileName(const base::string16& vfs_file_name,
28                               std::string* origin_identifier,
29                               base::string16* database_name,
30                               base::string16* sqlite_suffix);
31  static base::FilePath GetFullFilePathForVfsFile(
32      DatabaseTracker* db_tracker,
33      const base::string16& vfs_file_name);
34  static bool IsValidOriginIdentifier(const std::string& origin_identifier);
35};
36
37}  // namespace storage
38
39#endif  // STORAGE_BROWSER_DATABASE_DATABASE_UTIL_H_
40