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-enum-encoding-helpers-with-guarded-values.json
28 // by the script: JavaScriptCore/replay/scripts/CodeGeneratorReplayInputs.py
31 #include "generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.h"
33 #if ENABLE(WEB_REPLAY)
34 #include "InternalNamespaceImplIncludeDummy.h"
35 #include <platform/ExternalNamespaceImplIncludeDummy.h>
36 #include <platform/PlatformMouseEvent.h>
39 SavedMouseButton::SavedMouseButton(MouseButton button
)
40 : NondeterministicInput
<SavedMouseButton
>()
45 SavedMouseButton::~SavedMouseButton()
51 const AtomicString
& InputTraits
<Test::SavedMouseButton
>::type()
53 static NeverDestroyed
<const AtomicString
> type("SavedMouseButton", AtomicString::ConstructFromLiteral
);
57 void InputTraits
<Test::SavedMouseButton
>::encode(EncodedValue
& encodedValue
, const Test::SavedMouseButton
& input
)
59 encodedValue
.put
<WebCore::MouseButton
>(ASCIILiteral("button"), input
.button());
62 bool InputTraits
<Test::SavedMouseButton
>::decode(EncodedValue
& encodedValue
, std::unique_ptr
<Test::SavedMouseButton
>& input
)
64 WebCore::MouseButton button
;
65 if (!encodedValue
.get
<WebCore::MouseButton
>(ASCIILiteral("button"), button
))
68 input
= std::make_unique
<Test::SavedMouseButton
>(button
);
71 EncodedValue EncodingTraits
<WebCore::MouseButton
>::encodeValue(const WebCore::MouseButton
& enumValue
)
73 EncodedValue encodedValue
= EncodedValue::createArray();
74 if (enumValue
& WebCore::NoButton
) {
75 encodedValue
.append
<String
>(ASCIILiteral("NoButton"));
76 if (enumValue
== WebCore::NoButton
)
79 if (enumValue
& WebCore::LeftButton
) {
80 encodedValue
.append
<String
>(ASCIILiteral("LeftButton"));
81 if (enumValue
== WebCore::LeftButton
)
84 if (enumValue
& WebCore::MiddleButton
) {
85 encodedValue
.append
<String
>(ASCIILiteral("MiddleButton"));
86 if (enumValue
== WebCore::MiddleButton
)
89 if (enumValue
& WebCore::RightButton
) {
90 encodedValue
.append
<String
>(ASCIILiteral("RightButton"));
91 if (enumValue
== WebCore::RightButton
)
94 #if ENABLE(SIDE_BUTTONS)
95 if (enumValue
& WebCore::LeftSideButton
) {
96 encodedValue
.append
<String
>(ASCIILiteral("LeftSideButton"));
97 if (enumValue
== WebCore::LeftSideButton
)
100 if (enumValue
& WebCore::RightSideButton
) {
101 encodedValue
.append
<String
>(ASCIILiteral("RightSideButton"));
102 if (enumValue
== WebCore::RightSideButton
)
105 #endif // ENABLE(SIDE_BUTTONS)
106 #if PLATFORM(WINDOWS)
107 if (enumValue
& WebCore::WindowsButton
) {
108 encodedValue
.append
<String
>(ASCIILiteral("WindowsButton"));
109 if (enumValue
== WebCore::WindowsButton
)
112 #endif // PLATFORM(WINDOWS)
116 bool EncodingTraits
<WebCore::MouseButton
>::decodeValue(EncodedValue
& encodedValue
, WebCore::MouseButton
& enumValue
)
118 Vector
<String
> enumStrings
;
119 if (!EncodingTraits
<Vector
<String
>>::decodeValue(encodedValue
, enumStrings
))
122 for (String enumString
: enumStrings
) {
123 if (enumString
== "NoButton")
124 enumValue
= static_cast<WebCore::MouseButton
>(enumValue
| WebCore::NoButton
);
125 if (enumString
== "LeftButton")
126 enumValue
= static_cast<WebCore::MouseButton
>(enumValue
| WebCore::LeftButton
);
127 if (enumString
== "MiddleButton")
128 enumValue
= static_cast<WebCore::MouseButton
>(enumValue
| WebCore::MiddleButton
);
129 if (enumString
== "RightButton")
130 enumValue
= static_cast<WebCore::MouseButton
>(enumValue
| WebCore::RightButton
);
131 #if ENABLE(SIDE_BUTTONS)
132 if (enumString
== "LeftSideButton")
133 enumValue
= static_cast<WebCore::MouseButton
>(enumValue
| WebCore::LeftSideButton
);
134 if (enumString
== "RightSideButton")
135 enumValue
= static_cast<WebCore::MouseButton
>(enumValue
| WebCore::RightSideButton
);
136 #endif // ENABLE(SIDE_BUTTONS)
137 #if PLATFORM(WINDOWS)
138 if (enumString
== "WindowsButton")
139 enumValue
= static_cast<WebCore::MouseButton
>(enumValue
| WebCore::WindowsButton
);
140 #endif // PLATFORM(WINDOWS)
147 #endif // ENABLE(WEB_REPLAY)