]> git.saurik.com Git - apple/javascriptcore.git/blob - replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.cpp
JavaScriptCore-7600.1.4.15.12.tar.gz
[apple/javascriptcore.git] / replay / scripts / tests / expected / generate-enums-with-same-base-name.json-TestReplayInputs.cpp
1 /*
2 * Copyright (C) 2014 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 *
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.
25 */
26
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
29
30 #include "config.h"
31 #include "generate-enums-with-same-base-name.json-TestReplayInputs.h"
32
33 #if ENABLE(WEB_REPLAY)
34 #include "InternalNamespaceImplIncludeDummy.h"
35 #include <platform/ExternalNamespaceImplIncludeDummy.h>
36
37 namespace Test {
38 FormCombo::FormCombo(PlatformEvent::Type eventType, FormData::Type formType)
39 : NondeterministicInput<FormCombo>()
40 , m_eventType(eventType)
41 , m_formType(formType)
42 {
43 }
44
45 FormCombo::~FormCombo()
46 {
47 }
48 } // namespace Test
49
50 namespace JSC {
51 const AtomicString& InputTraits<Test::FormCombo>::type()
52 {
53 static NeverDestroyed<const AtomicString> type("FormCombo", AtomicString::ConstructFromLiteral);
54 return type;
55 }
56
57 void InputTraits<Test::FormCombo>::encode(EncodedValue& encodedValue, const Test::FormCombo& input)
58 {
59 encodedValue.put<PlatformEvent::Type>(ASCIILiteral("eventType"), input.eventType());
60 encodedValue.put<WebCore::FormData::Type>(ASCIILiteral("formType"), input.formType());
61 }
62
63 bool InputTraits<Test::FormCombo>::decode(EncodedValue& encodedValue, std::unique_ptr<Test::FormCombo>& input)
64 {
65 PlatformEvent::Type eventType;
66 if (!encodedValue.get<PlatformEvent::Type>(ASCIILiteral("eventType"), eventType))
67 return false;
68
69 WebCore::FormData::Type formType;
70 if (!encodedValue.get<WebCore::FormData::Type>(ASCIILiteral("formType"), formType))
71 return false;
72
73 input = std::make_unique<Test::FormCombo>(eventType, formType);
74 return true;
75 }
76 EncodedValue EncodingTraits<WebCore::FormData::Type>::encodeValue(const WebCore::FormData::Type& enumValue)
77 {
78 EncodedValue encodedValue = EncodedValue::createArray();
79 if (enumValue & WebCore::FormData::Text) {
80 encodedValue.append<String>(ASCIILiteral("Text"));
81 if (enumValue == WebCore::FormData::Text)
82 return encodedValue;
83 }
84 if (enumValue & WebCore::FormData::Blob) {
85 encodedValue.append<String>(ASCIILiteral("Blob"));
86 if (enumValue == WebCore::FormData::Blob)
87 return encodedValue;
88 }
89 return encodedValue;
90 }
91
92 bool EncodingTraits<WebCore::FormData::Type>::decodeValue(EncodedValue& encodedValue, WebCore::FormData::Type& enumValue)
93 {
94 Vector<String> enumStrings;
95 if (!EncodingTraits<Vector<String>>::decodeValue(encodedValue, enumStrings))
96 return false;
97
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);
103 }
104
105 return true;
106 }
107
108 EncodedValue EncodingTraits<PlatformEvent::Type>::encodeValue(const PlatformEvent::Type& enumValue)
109 {
110 EncodedValue encodedValue = EncodedValue::createArray();
111 if (enumValue & PlatformEvent::Mouse) {
112 encodedValue.append<String>(ASCIILiteral("Mouse"));
113 if (enumValue == PlatformEvent::Mouse)
114 return encodedValue;
115 }
116 if (enumValue & PlatformEvent::Keyboard) {
117 encodedValue.append<String>(ASCIILiteral("Keyboard"));
118 if (enumValue == PlatformEvent::Keyboard)
119 return encodedValue;
120 }
121 return encodedValue;
122 }
123
124 bool EncodingTraits<PlatformEvent::Type>::decodeValue(EncodedValue& encodedValue, PlatformEvent::Type& enumValue)
125 {
126 Vector<String> enumStrings;
127 if (!EncodingTraits<Vector<String>>::decodeValue(encodedValue, enumStrings))
128 return false;
129
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);
135 }
136
137 return true;
138 }
139 } // namespace JSC
140
141 #endif // ENABLE(WEB_REPLAY)