1f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick/* 2f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * Copyright (C) 2010 Google Inc. All rights reserved. 3f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * 4f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * Redistribution and use in source and binary forms, with or without 5f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * modification, are permitted provided that the following conditions are 6f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * met: 7f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * 8f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * * Redistributions of source code must retain the above copyright 9f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * notice, this list of conditions and the following disclaimer. 10f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * * Redistributions in binary form must reproduce the above 11f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * copyright notice, this list of conditions and the following disclaimer 12f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * in the documentation and/or other materials provided with the 13f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * distribution. 14f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * * Neither the name of Google Inc. nor the names of its 15f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * contributors may be used to endorse or promote products derived from 16f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * this software without specific prior written permission. 17f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * 18f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick */ 30f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick 31f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick#ifndef BlobStorageData_h 32f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick#define BlobStorageData_h 33f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick 34e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block#include "BlobData.h" 35f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick#include <wtf/PassRefPtr.h> 36e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block#include <wtf/RefCounted.h> 37f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick 38f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merricknamespace WebCore { 39f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick 40f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrickclass BlobStorageData : public RefCounted<BlobStorageData> { 41f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrickpublic: 42e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block static PassRefPtr<BlobStorageData> create(const String& contentType, const String& contentDisposition) 43f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick { 44e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block return adoptRef(new BlobStorageData(contentType, contentDisposition)); 45f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick } 46f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick 47e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block const String& contentType() const { return m_data.contentType(); } 48e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block const String& contentDisposition() const { return m_data.contentDisposition(); } 49e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block const BlobDataItemList& items() const { return m_data.items(); } 50f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick 51e8b154fd68f9b33be40a3590e58347f353835f5cSteve Blockprivate: 52e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block friend class BlobRegistryImpl; 53f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick 54e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block BlobStorageData(const String& contentType, const String& contentDisposition) 55f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick { 56e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block m_data.setContentType(contentType); 57e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block m_data.setContentDisposition(contentDisposition); 58f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick } 59f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick 60e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block BlobData m_data; 61f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick}; 62f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick 63f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick} // namespace WebCore 64f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick 65f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick#endif // BlobStorageData_h 66