diff options
Diffstat (limited to 'Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h')
-rw-r--r-- | Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h | 89 |
1 files changed, 53 insertions, 36 deletions
diff --git a/Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h b/Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h index c8d200885..0801720bc 100644 --- a/Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h +++ b/Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h @@ -1,65 +1,82 @@ /* - * Copyright (C) 2011 Google Inc. All rights reserved. + * Copyright (C) 2015, 2016 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef IDBVersionChangeEvent_h -#define IDBVersionChangeEvent_h +#pragma once #if ENABLE(INDEXED_DATABASE) #include "Event.h" -#include "IndexedDB.h" -#include <wtf/PassRefPtr.h> -#include <wtf/RefPtr.h> -#include <wtf/text/WTFString.h> +#include "IDBResourceIdentifier.h" +#include <wtf/Optional.h> namespace WebCore { -class IDBVersionChangeEvent : public Event { +class IDBVersionChangeEvent final : public Event { public: - static PassRefPtr<IDBVersionChangeEvent> create(unsigned long long oldVersion = 0, unsigned long long newVersion = 0, IndexedDB::VersionNullness newVersionNullness = IndexedDB::VersionNullness::Null, const AtomicString& eventType = AtomicString()) + static Ref<IDBVersionChangeEvent> create(uint64_t oldVersion, uint64_t newVersion, const AtomicString& eventType) + { + return adoptRef(*new IDBVersionChangeEvent(IDBResourceIdentifier::emptyValue(), oldVersion, newVersion, eventType)); + } + + static Ref<IDBVersionChangeEvent> create(const IDBResourceIdentifier& requestIdentifier, uint64_t oldVersion, uint64_t newVersion, const AtomicString& eventType) { - return adoptRef(new IDBVersionChangeEvent(oldVersion, newVersion, newVersionNullness, eventType)); + return adoptRef(*new IDBVersionChangeEvent(requestIdentifier, oldVersion, newVersion, eventType)); } - virtual ~IDBVersionChangeEvent(); + struct Init : EventInit { + uint64_t oldVersion { 0 }; + std::optional<uint64_t> newVersion; + }; - virtual unsigned long long oldVersion() { return m_oldVersion; } - virtual unsigned long long newVersion(bool& isNull) { isNull = (m_newVersionNullness == IndexedDB::VersionNullness::Null); return m_newVersion; } + static Ref<IDBVersionChangeEvent> create(const AtomicString& type, const Init& initializer, IsTrusted isTrusted = IsTrusted::No) + { + return adoptRef(*new IDBVersionChangeEvent(type, initializer, isTrusted)); + } - virtual EventInterface eventInterface() const; + const IDBResourceIdentifier& requestIdentifier() const { return m_requestIdentifier; } + + bool isVersionChangeEvent() const final { return true; } + + uint64_t oldVersion() const { return m_oldVersion; } + std::optional<uint64_t> newVersion() const { return m_newVersion; } private: - IDBVersionChangeEvent(unsigned long long oldVersion, unsigned long long newVersion, IndexedDB::VersionNullness newVersionNullness, const AtomicString& eventType); + IDBVersionChangeEvent(const IDBResourceIdentifier& requestIdentifier, uint64_t oldVersion, uint64_t newVersion, const AtomicString& eventType); + IDBVersionChangeEvent(const AtomicString&, const Init&, IsTrusted); + + EventInterface eventInterface() const; - unsigned long long m_oldVersion; - unsigned long long m_newVersion; - IndexedDB::VersionNullness m_newVersionNullness; + IDBResourceIdentifier m_requestIdentifier; + uint64_t m_oldVersion; + std::optional<uint64_t> m_newVersion; }; } // namespace WebCore -#endif // ENABLE(INDEXED_DATABASE) +SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::IDBVersionChangeEvent) + static bool isType(const WebCore::Event& event) { return event.isVersionChangeEvent(); } +SPECIALIZE_TYPE_TRAITS_END() -#endif // IDBVersionChangeEvent_h +#endif // ENABLE(INDEXED_DATABASE) |