17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file. 47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#ifndef WEBKIT_COMMON_DATABASE_DATABASE_IDENTIFIER_H_ 6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define WEBKIT_COMMON_DATABASE_DATABASE_IDENTIFIER_H_ 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include <string> 97d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/basictypes.h" 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/strings/string_piece.h" 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "url/gurl.h" 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "webkit/common/webkit_storage_common_export.h" 147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace webkit_database { 167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)WEBKIT_STORAGE_COMMON_EXPORT std::string GetIdentifierFromOrigin( 187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const GURL& origin); 197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)WEBKIT_STORAGE_COMMON_EXPORT GURL GetOriginFromIdentifier( 207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const std::string& identifier); 217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class WEBKIT_STORAGE_COMMON_EXPORT DatabaseIdentifier { 237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) public: 247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) static const DatabaseIdentifier UniqueFileIdentifier(); 257d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) static DatabaseIdentifier CreateFromOrigin(const GURL& origin); 267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) static DatabaseIdentifier Parse(const std::string& identifier); 277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) ~DatabaseIdentifier(); 287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) std::string ToString() const; 307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) GURL ToOrigin() const; 317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) std::string scheme() const { return scheme_; } 337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) std::string hostname() const { return hostname_; } 347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) int port() const { return port_; } 357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) bool is_unique() const { return is_unique_; } 367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 377d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) private: 387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) DatabaseIdentifier(); 397d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) DatabaseIdentifier(const std::string& scheme, 407d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const std::string& hostname, 417d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) int port, 427d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) bool is_unique, 437d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) bool is_file); 447d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 457d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) std::string scheme_; 467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) std::string hostname_; 477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) int port_; 487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) bool is_unique_; 497d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) bool is_file_; 507d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}; 517d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 527d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} // namespace webkit_database 53eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 54eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#endif // WEBKIT_COMMON_DATABASE_DATABASE_IDENTIFIER_H_ 55