root/chrome/browser/sync_file_system/drive_backend/metadata_db_migration_util.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


// Copyright 2013 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 CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DB_MIGRATION_UTIL_H_
#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DB_MIGRATION_UTIL_H_

#include <string>

#include "chrome/browser/sync_file_system/sync_file_system.pb.h"
#include "chrome/browser/sync_file_system/sync_status_code.h"
#include "third_party/leveldatabase/src/include/leveldb/db.h"

class GURL;

namespace sync_file_system {
namespace drive_backend {

// Parses a filesystem URL which contains 'drive' as a service name
// (a.k.a. V0-format filesystem URL).
//
// When you parse V0-format filesystem URL, you should use this function instead
// of DeserializeSyncableFileSystemURL() since 'drive' service name is no longer
// used and the deserializer cannot parse the unregistered service name.
//
// EXAMPLE:
// Assume following argument is given.
//   url: 'filesystem:http://www.example.com/external/drive/foo/bar'
// returns
//   origin: 'http://www.example.com/'
//   path:   'foo/bar'
bool ParseV0FormatFileSystemURL(const GURL& url,
                                GURL* origin,
                                base::FilePath* path);

// Adds "file:" prefix to WAPI resource ID.
// EXAMPLE:  "xxx" => "file:xxx"
std::string AddWapiFilePrefix(const std::string& resource_id);

// Adds "folder:" prefix to WAPI resource ID.
// EXAMPLE:  "xxx" => "folder:xxx"
std::string AddWapiFolderPrefix(const std::string& resource_id);

// Adds a prefix corresponding to the given |type|.
std::string AddWapiIdPrefix(const std::string& resource_id,
                            DriveMetadata_ResourceType type);

// Removes a prefix from WAPI resource ID.
// EXAMPLE:
//   "file:xxx"    =>  "xxx"
//   "folder:yyy"  =>  "yyy"
//   "zzz"         =>  "zzz"
std::string RemoveWapiIdPrefix(const std::string& resource_id);

// Migrate |db| schema from version 0 to version 1.
SyncStatusCode MigrateDatabaseFromV0ToV1(leveldb::DB* db);

// Migrate |db| schema from version 1 to version 2.
SyncStatusCode MigrateDatabaseFromV1ToV2(leveldb::DB* db);

}  // namespace drive_backend
}  // namespace sync_file_system

#endif  // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DB_MIGRATION_UTIL_H_

/* [<][>][^][v][top][bottom][index][help] */