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 #include "config.h" 6 #include "public/platform/WebServiceWorkerResponse.h" 7 8 #include "platform/blob/BlobData.h" 9 10 namespace blink { 11 12 class WebServiceWorkerResponsePrivate : public RefCounted<WebServiceWorkerResponsePrivate> { 13 public: 14 unsigned short status; 15 WebString statusText; 16 HashMap<String, String> headers; 17 RefPtr<WebCore::BlobDataHandle> blobDataHandle; 18 }; 19 20 WebServiceWorkerResponse::WebServiceWorkerResponse() 21 : m_private(adoptRef(new WebServiceWorkerResponsePrivate)) 22 { 23 } 24 25 void WebServiceWorkerResponse::reset() 26 { 27 m_private.reset(); 28 } 29 30 void WebServiceWorkerResponse::assign(const WebServiceWorkerResponse& other) 31 { 32 m_private = other.m_private; 33 } 34 35 void WebServiceWorkerResponse::setStatus(unsigned short status) 36 { 37 m_private->status = status; 38 } 39 40 unsigned short WebServiceWorkerResponse::status() const 41 { 42 return m_private->status; 43 } 44 45 void WebServiceWorkerResponse::setStatusText(const WebString& statusText) 46 { 47 m_private->statusText = statusText; 48 } 49 50 WebString WebServiceWorkerResponse::statusText() const 51 { 52 return m_private->statusText; 53 } 54 55 void WebServiceWorkerResponse::setHeader(const WebString& key, const WebString& value) 56 { 57 m_private->headers.set(key, value); 58 } 59 60 WebVector<WebString> WebServiceWorkerResponse::getHeaderKeys() const 61 { 62 Vector<String> keys; 63 copyKeysToVector(m_private->headers, keys); 64 return keys; 65 } 66 67 WebString WebServiceWorkerResponse::getHeader(const WebString& key) const 68 { 69 return m_private->headers.get(key); 70 } 71 72 WebString WebServiceWorkerResponse::blobUUID() const 73 { 74 if (!m_private->blobDataHandle) 75 return WebString(); 76 return m_private->blobDataHandle->uuid(); 77 } 78 79 void WebServiceWorkerResponse::setHeaders(const HashMap<String, String>& headers) 80 { 81 m_private->headers = headers; 82 } 83 84 const HashMap<String, String>& WebServiceWorkerResponse::headers() const 85 { 86 return m_private->headers; 87 } 88 89 void WebServiceWorkerResponse::setBlobDataHandle(PassRefPtr<WebCore::BlobDataHandle> blobDataHandle) 90 { 91 m_private->blobDataHandle = blobDataHandle; 92 } 93 94 PassRefPtr<WebCore::BlobDataHandle> WebServiceWorkerResponse::blobDataHandle() const 95 { 96 return m_private->blobDataHandle; 97 } 98 99 } // namespace blink 100