2 * Copyright (C) 2014 Apple Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
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.
14 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
15 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
16 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
17 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
18 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
20 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 // DO NOT EDIT THIS FILE. It is automatically generated from generate-enums-with-same-base-name.json
28 // by the script: JavaScriptCore/replay/scripts/CodeGeneratorReplayInputs.py
31 #include "generate-enums-with-same-base-name.json-TestReplayInputs.h"
33 #if ENABLE(WEB_REPLAY)
34 #include "InternalNamespaceImplIncludeDummy.h"
35 #include <platform/ExternalNamespaceImplIncludeDummy.h>
38 FormCombo::FormCombo(PlatformEvent::Type eventType
, FormData::Type formType
)
39 : NondeterministicInput
<FormCombo
>()
40 , m_eventType(eventType
)
41 , m_formType(formType
)
45 FormCombo::~FormCombo()
51 const AtomicString
& InputTraits
<Test::FormCombo
>::type()
53 static NeverDestroyed
<const AtomicString
> type("FormCombo", AtomicString::ConstructFromLiteral
);
57 void InputTraits
<Test::FormCombo
>::encode(EncodedValue
& encodedValue
, const Test::FormCombo
& input
)
59 encodedValue
.put
<PlatformEvent::Type
>(ASCIILiteral("eventType"), input
.eventType());
60 encodedValue
.put
<WebCore::FormData::Type
>(ASCIILiteral("formType"), input
.formType());
63 bool InputTraits
<Test::FormCombo
>::decode(EncodedValue
& encodedValue
, std::unique_ptr
<Test::FormCombo
>& input
)
65 PlatformEvent::Type eventType
;
66 if (!encodedValue
.get
<PlatformEvent::Type
>(ASCIILiteral("eventType"), eventType
))
69 WebCore::FormData::Type formType
;
70 if (!encodedValue
.get
<WebCore::FormData::Type
>(ASCIILiteral("formType"), formType
))
73 input
= std::make_unique
<Test::FormCombo
>(eventType
, formType
);
76 EncodedValue EncodingTraits
<WebCore::FormData::Type
>::encodeValue(const WebCore::FormData::Type
& enumValue
)
78 EncodedValue encodedValue
= EncodedValue::createArray();
79 if (enumValue
& WebCore::FormData::Text
) {
80 encodedValue
.append
<String
>(ASCIILiteral("Text"));
81 if (enumValue
== WebCore::FormData::Text
)
84 if (enumValue
& WebCore::FormData::Blob
) {
85 encodedValue
.append
<String
>(ASCIILiteral("Blob"));
86 if (enumValue
== WebCore::FormData::Blob
)
92 bool EncodingTraits
<WebCore::FormData::Type
>::decodeValue(EncodedValue
& encodedValue
, WebCore::FormData::Type
& enumValue
)
94 Vector
<String
> enumStrings
;
95 if (!EncodingTraits
<Vector
<String
>>::decodeValue(encodedValue
, enumStrings
))
98 for (String enumString
: enumStrings
) {
99 if (enumString
== "Text")
100 enumValue
= static_cast<WebCore::FormData::Type
>(enumValue
| WebCore::FormData::Text
);
101 if (enumString
== "Blob")
102 enumValue
= static_cast<WebCore::FormData::Type
>(enumValue
| WebCore::FormData::Blob
);
108 EncodedValue EncodingTraits
<PlatformEvent::Type
>::encodeValue(const PlatformEvent::Type
& enumValue
)
110 EncodedValue encodedValue
= EncodedValue::createArray();
111 if (enumValue
& PlatformEvent::Mouse
) {
112 encodedValue
.append
<String
>(ASCIILiteral("Mouse"));
113 if (enumValue
== PlatformEvent::Mouse
)
116 if (enumValue
& PlatformEvent::Keyboard
) {
117 encodedValue
.append
<String
>(ASCIILiteral("Keyboard"));
118 if (enumValue
== PlatformEvent::Keyboard
)
124 bool EncodingTraits
<PlatformEvent::Type
>::decodeValue(EncodedValue
& encodedValue
, PlatformEvent::Type
& enumValue
)
126 Vector
<String
> enumStrings
;
127 if (!EncodingTraits
<Vector
<String
>>::decodeValue(encodedValue
, enumStrings
))
130 for (String enumString
: enumStrings
) {
131 if (enumString
== "Mouse")
132 enumValue
= static_cast<PlatformEvent::Type
>(enumValue
| PlatformEvent::Mouse
);
133 if (enumString
== "Keyboard")
134 enumValue
= static_cast<PlatformEvent::Type
>(enumValue
| PlatformEvent::Keyboard
);
141 #endif // ENABLE(WEB_REPLAY)