1 /* 2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 14 * its contributors may be used to endorse or promote products derived 15 * from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 #ifndef NetscapePlugInStreamLoader_h 30 #define NetscapePlugInStreamLoader_h 31 32 #include "ResourceLoader.h" 33 #include <wtf/Forward.h> 34 35 namespace WebCore { 36 37 class NetscapePlugInStreamLoader; 38 39 class NetscapePlugInStreamLoaderClient { 40 public: 41 virtual void didReceiveResponse(NetscapePlugInStreamLoader*, const ResourceResponse&) = 0; 42 virtual void didReceiveData(NetscapePlugInStreamLoader*, const char*, int) = 0; 43 virtual void didFail(NetscapePlugInStreamLoader*, const ResourceError&) = 0; didFinishLoading(NetscapePlugInStreamLoader *)44 virtual void didFinishLoading(NetscapePlugInStreamLoader*) { } wantsAllStreams()45 virtual bool wantsAllStreams() const { return false; } 46 47 protected: ~NetscapePlugInStreamLoaderClient()48 virtual ~NetscapePlugInStreamLoaderClient() { } 49 }; 50 51 class NetscapePlugInStreamLoader : public ResourceLoader { 52 public: 53 static PassRefPtr<NetscapePlugInStreamLoader> create(Frame*, NetscapePlugInStreamLoaderClient*, const ResourceRequest&); 54 virtual ~NetscapePlugInStreamLoader(); 55 56 bool isDone() const; 57 58 private: 59 virtual void didReceiveResponse(const ResourceResponse&); 60 virtual void didReceiveData(const char*, int, long long encodedDataLength, bool allAtOnce); 61 virtual void didFinishLoading(double finishTime); 62 virtual void didFail(const ResourceError&); 63 64 virtual void releaseResources(); 65 66 NetscapePlugInStreamLoader(Frame*, NetscapePlugInStreamLoaderClient*); 67 68 virtual void didCancel(const ResourceError& error); 69 70 NetscapePlugInStreamLoaderClient* m_client; 71 }; 72 73 } 74 75 #endif // NetscapePlugInStreamLoader_h 76