19b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar/* 29b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * Copyright (C) 2009 Google Inc. All rights reserved. 39b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * 49b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * Redistribution and use in source and binary forms, with or without 59b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * modification, are permitted provided that the following conditions are 69b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * met: 79b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * 89b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * * Redistributions of source code must retain the above copyright 99b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * notice, this list of conditions and the following disclaimer. 1043dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis * * Redistributions in binary form must reproduce the above 119b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * copyright notice, this list of conditions and the following disclaimer 12e6348c336fecc8da9288ea367375a1b1cd2358d2Argyrios Kyrtzidis * in the documentation and/or other materials provided with the 139b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * distribution. 149ef6537a894c33003359b1f9b9676e9178e028b7Ted Kremenek * * Neither the name of Google Inc. nor the names of its 159b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * contributors may be used to endorse or promote products derived from 169b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * this software without specific prior written permission. 175f9e272e632e951b1efe824cd16acb4d96077930Chris Lattner * 189b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 199b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2008b86531ade68727c56918f162816075b87c864aJordy Rose * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2108b86531ade68727c56918f162816075b87c864aJordy Rose * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 229b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 239b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 */ 30 31#ifndef WebSocketStreamError_h 32#define WebSocketStreamError_h 33 34#include "WebCommon.h" 35#include "WebPrivatePtr.h" 36 37#if INSIDE_BLINK 38#include "wtf/PassRefPtr.h" 39#endif 40 41namespace blink { 42 43class SocketStreamError; 44class WebString; 45 46class BLINK_PLATFORM_EXPORT WebSocketStreamError { 47public: 48 WebSocketStreamError(int code, const WebString& message) { assign(code, message); } 49 WebSocketStreamError(const WebSocketStreamError& other) { assign(other); } 50 ~WebSocketStreamError() { reset(); } 51 52 void assign(int code, const WebString& message); 53 void assign(const WebSocketStreamError&); 54 void reset(); 55 56#if INSIDE_BLINK 57 WebSocketStreamError(WTF::PassRefPtr<SocketStreamError>); 58 WebSocketStreamError& operator=(WTF::PassRefPtr<SocketStreamError>); 59 operator WTF::PassRefPtr<SocketStreamError>() const; 60#endif 61 62private: 63 WebPrivatePtr<SocketStreamError> m_private; 64}; 65 66} // namespace blink 67 68#endif 69