| Index: webkit/common/data_element.h
|
| diff --git a/webkit/common/data_element.h b/webkit/common/data_element.h
|
| index 33c5c1b89a5f2c7b783f03c7aa5e540cb4ecc829..88e0e750fce41252d7498362f7af70b87d74ceb2 100644
|
| --- a/webkit/common/data_element.h
|
| +++ b/webkit/common/data_element.h
|
| @@ -1,127 +1,5 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| +// Copyright 2014 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_COMMON_DATA_ELEMENT_H_
|
| -#define WEBKIT_COMMON_DATA_ELEMENT_H_
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/files/file_path.h"
|
| -#include "base/logging.h"
|
| -#include "base/time/time.h"
|
| -#include "url/gurl.h"
|
| -#include "webkit/common/webkit_common_export.h"
|
| -
|
| -namespace storage {
|
| -
|
| -// Represents a base Web data element. This could be either one of
|
| -// bytes, file or blob data.
|
| -class WEBKIT_COMMON_EXPORT DataElement {
|
| - public:
|
| - enum Type {
|
| - TYPE_UNKNOWN = -1,
|
| - TYPE_BYTES,
|
| - TYPE_FILE,
|
| - TYPE_BLOB,
|
| - TYPE_FILE_FILESYSTEM,
|
| - };
|
| -
|
| - DataElement();
|
| - ~DataElement();
|
| -
|
| - Type type() const { return type_; }
|
| - const char* bytes() const { return bytes_ ? bytes_ : &buf_[0]; }
|
| - const base::FilePath& path() const { return path_; }
|
| - const GURL& filesystem_url() const { return filesystem_url_; }
|
| - const std::string& blob_uuid() const { return blob_uuid_; }
|
| - uint64 offset() const { return offset_; }
|
| - uint64 length() const { return length_; }
|
| - const base::Time& expected_modification_time() const {
|
| - return expected_modification_time_;
|
| - }
|
| -
|
| - // Sets TYPE_BYTES data. This copies the given data into the element.
|
| - void SetToBytes(const char* bytes, int bytes_len) {
|
| - type_ = TYPE_BYTES;
|
| - buf_.assign(bytes, bytes + bytes_len);
|
| - length_ = buf_.size();
|
| - }
|
| -
|
| - // Sets TYPE_BYTES data. This does NOT copy the given data and the caller
|
| - // should make sure the data is alive when this element is accessed.
|
| - void SetToSharedBytes(const char* bytes, int bytes_len) {
|
| - type_ = TYPE_BYTES;
|
| - bytes_ = bytes;
|
| - length_ = bytes_len;
|
| - }
|
| -
|
| - // Sets TYPE_FILE data.
|
| - void SetToFilePath(const base::FilePath& path) {
|
| - SetToFilePathRange(path, 0, kuint64max, base::Time());
|
| - }
|
| -
|
| - // Sets TYPE_BLOB data.
|
| - void SetToBlob(const std::string& uuid) {
|
| - SetToBlobRange(uuid, 0, kuint64max);
|
| - }
|
| -
|
| - // Sets TYPE_FILE data with range.
|
| - void SetToFilePathRange(const base::FilePath& path,
|
| - uint64 offset, uint64 length,
|
| - const base::Time& expected_modification_time);
|
| -
|
| - // Sets TYPE_BLOB data with range.
|
| - void SetToBlobRange(const std::string& blob_uuid,
|
| - uint64 offset, uint64 length);
|
| -
|
| - // Sets TYPE_FILE_FILESYSTEM with range.
|
| - void SetToFileSystemUrlRange(const GURL& filesystem_url,
|
| - uint64 offset, uint64 length,
|
| - const base::Time& expected_modification_time);
|
| -
|
| - private:
|
| - Type type_;
|
| - std::vector<char> buf_; // For TYPE_BYTES.
|
| - const char* bytes_; // For TYPE_BYTES.
|
| - base::FilePath path_; // For TYPE_FILE.
|
| - GURL filesystem_url_; // For TYPE_FILE_FILESYSTEM.
|
| - std::string blob_uuid_;
|
| - uint64 offset_;
|
| - uint64 length_;
|
| - base::Time expected_modification_time_;
|
| -};
|
| -
|
| -#if defined(UNIT_TEST)
|
| -inline bool operator==(const DataElement& a, const DataElement& b) {
|
| - if (a.type() != b.type() ||
|
| - a.offset() != b.offset() ||
|
| - a.length() != b.length())
|
| - return false;
|
| - switch (a.type()) {
|
| - case DataElement::TYPE_BYTES:
|
| - return memcmp(a.bytes(), b.bytes(), b.length()) == 0;
|
| - case DataElement::TYPE_FILE:
|
| - return a.path() == b.path() &&
|
| - a.expected_modification_time() == b.expected_modification_time();
|
| - case DataElement::TYPE_BLOB:
|
| - return a.blob_uuid() == b.blob_uuid();
|
| - case DataElement::TYPE_FILE_FILESYSTEM:
|
| - return a.filesystem_url() == b.filesystem_url();
|
| - case DataElement::TYPE_UNKNOWN:
|
| - NOTREACHED();
|
| - return false;
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -inline bool operator!=(const DataElement& a, const DataElement& b) {
|
| - return !(a == b);
|
| -}
|
| -#endif // defined(UNIT_TEST)
|
| -
|
| -} // namespace storage
|
| -
|
| -#endif // WEBKIT_COMMON_DATA_ELEMENT_H_
|
| +#include "storage/common/data_element.h"
|
|
|