1a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)/* 2a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * Copyright (C) 2013 Google Inc. All rights reserved. 3a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * 4a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 5a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * modification, are permitted provided that the following conditions are 6a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * met: 7a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * 8a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * 1. Redistributions of source code must retain the above copyright 9a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 10a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * 11a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * 2. Redistributions in binary form must reproduce the above 12a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * copyright notice, this list of conditions and the following disclaimer 13a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * in the documentation and/or other materials provided with the 14a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * distribution. 15a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * 16a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. AND ITS CONTRIBUTORS 17a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC. 20a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) */ 28a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 29a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#ifndef WebIDBCallbacksImpl_h 30a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#define WebIDBCallbacksImpl_h 31a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 32a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#include "public/platform/WebIDBCallbacks.h" 33a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#include "wtf/PassOwnPtr.h" 34a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#include "wtf/PassRefPtr.h" 35a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#include "wtf/RefPtr.h" 36a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 37a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)namespace blink { 38e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 39e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class IDBRequest; 40f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liuclass WebBlobInfo; 41a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)class WebData; 42a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)class WebIDBCursor; 43a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)class WebIDBDatabase; 44a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)class WebIDBDatabaseError; 45a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)class WebIDBIndex; 46a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)class WebIDBKey; 47a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)class WebIDBKeyPath; 48a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)struct WebIDBMetadata; 49a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 50e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class WebIDBCallbacksImpl FINAL : public WebIDBCallbacks { 51a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)public: 52d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) static PassOwnPtr<WebIDBCallbacksImpl> create(IDBRequest*); 53a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 54a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) virtual ~WebIDBCallbacksImpl(); 55a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 56a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) // Pointers transfer ownership. 57e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void onError(const WebIDBDatabaseError&) OVERRIDE; 58e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void onSuccess(const WebVector<WebString>&) OVERRIDE; 59e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void onSuccess(WebIDBCursor*, const WebIDBKey&, const WebIDBKey& primaryKey, const WebData&, const WebVector<WebBlobInfo>&) OVERRIDE; 60e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void onSuccess(WebIDBDatabase*, const WebIDBMetadata&) OVERRIDE; 61e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void onSuccess(const WebIDBKey&) OVERRIDE; 62e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void onSuccess(const WebData&, const WebVector<WebBlobInfo>&) OVERRIDE; 63e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void onSuccess(const WebData&, const WebVector<WebBlobInfo>&, const WebIDBKey&, const WebIDBKeyPath&) OVERRIDE; 6409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void onSuccess(long long) OVERRIDE; 6509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void onSuccess() OVERRIDE; 66e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void onSuccess(const WebIDBKey&, const WebIDBKey& primaryKey, const WebData&, const WebVector<WebBlobInfo>&) OVERRIDE; 6709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void onBlocked(long long oldVersion) OVERRIDE; 68e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) virtual void onUpgradeNeeded(long long oldVersion, WebIDBDatabase*, const WebIDBMetadata&, unsigned short dataLoss, WebString dataLossMessage) OVERRIDE; 69a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 70a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)private: 71d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) explicit WebIDBCallbacksImpl(IDBRequest*); 72a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 73d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Persistent<IDBRequest> m_request; 74e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) int m_asyncOperationId; 75a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)}; 76a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 77c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 78a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 79a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)#endif // WebIDBCallbacksImpl_h 80