1// Copyright 2014 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 CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_VALUE_H_ 6#define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_VALUE_H_ 7 8#include <algorithm> 9#include <string> 10#include <vector> 11 12#include "content/browser/indexed_db/indexed_db_blob_info.h" 13#include "content/common/content_export.h" 14 15namespace content { 16 17struct CONTENT_EXPORT IndexedDBValue { 18 IndexedDBValue(); 19 IndexedDBValue(const std::string& input_bits, 20 const std::vector<IndexedDBBlobInfo>& input_blob_info); 21 ~IndexedDBValue(); 22 23 void swap(IndexedDBValue& value) { 24 bits.swap(value.bits); 25 blob_info.swap(value.blob_info); 26 } 27 28 bool empty() const { return bits.empty(); } 29 void clear() { 30 bits.clear(); 31 blob_info.clear(); 32 } 33 34 size_t SizeEstimate() const { 35 return bits.size() + blob_info.size() * sizeof(IndexedDBBlobInfo); 36 } 37 38 std::string bits; 39 std::vector<IndexedDBBlobInfo> blob_info; 40}; 41 42} // namespace content 43 44#endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_VALUE_H_ 45