Address some style problems found by static analysis
[WebKit-https.git] / Source / JavaScriptCore / inspector / scripts / tests / expected / commands-with-optional-call-return-parameters.json-result
1 ### Begin File: InspectorBackendCommands.js
2 /*
3  * Copyright (C) 2013 Google Inc. All rights reserved.
4  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
5  * Copyright (C) 2014 University of Washington. All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
17  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
18  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26  * THE POSSIBILITY OF SUCH DAMAGE.
27  */
28
29 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
30 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
31
32 // Database.
33 InspectorBackend.registerEnum("Database.PrimaryColors", {Red: "red", Green: "green", Blue: "blue"});
34 InspectorBackend.registerCommand("Database.executeAllOptionalParameters", [{"name": "columnNames", "type": "object", "optional": true}, {"name": "notes", "type": "string", "optional": true}, {"name": "timestamp", "type": "number", "optional": true}, {"name": "values", "type": "object", "optional": true}, {"name": "payload", "type": "object", "optional": true}, {"name": "databaseId", "type": "number", "optional": true}, {"name": "sqlError", "type": "object", "optional": true}, {"name": "screenColor", "type": "string", "optional": true}, {"name": "alternateColors", "type": "object", "optional": true}, {"name": "printColor", "type": "string", "optional": true}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "alternateColors", "printColor"]);
35 InspectorBackend.registerCommand("Database.executeNoOptionalParameters", [{"name": "columnNames", "type": "object", "optional": false}, {"name": "notes", "type": "string", "optional": false}, {"name": "timestamp", "type": "number", "optional": false}, {"name": "values", "type": "object", "optional": false}, {"name": "payload", "type": "object", "optional": false}, {"name": "databaseId", "type": "number", "optional": false}, {"name": "sqlError", "type": "object", "optional": false}, {"name": "screenColor", "type": "string", "optional": false}, {"name": "alternateColors", "type": "object", "optional": false}, {"name": "printColor", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "alternateColors", "printColor"]);
36 InspectorBackend.activateDomain("Database");
37 ### End File: InspectorBackendCommands.js
38
39 ### Begin File: TestAlternateBackendDispatchers.h
40 /*
41  * Copyright (C) 2013 Google Inc. All rights reserved.
42  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
43  * Copyright (C) 2014 University of Washington. All rights reserved.
44  *
45  * Redistribution and use in source and binary forms, with or without
46  * modification, are permitted provided that the following conditions
47  * are met:
48  * 1. Redistributions of source code must retain the above copyright
49  *    notice, this list of conditions and the following disclaimer.
50  * 2. Redistributions in binary form must reproduce the above copyright
51  *    notice, this list of conditions and the following disclaimer in the
52  *    documentation and/or other materials provided with the distribution.
53  *
54  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
55  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
56  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
57  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
58  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
59  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
60  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
61  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
62  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
63  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
64  * THE POSSIBILITY OF SUCH DAMAGE.
65  */
66
67 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
68 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
69
70 #pragma once
71
72 #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
73
74 #include "TestProtocolTypes.h"
75 #include <inspector/InspectorFrontendRouter.h>
76 #include <JavaScriptCore/InspectorBackendDispatcher.h>
77
78 namespace Inspector {
79
80 class AlternateBackendDispatcher {
81 public:
82     void setBackendDispatcher(RefPtr<BackendDispatcher>&& dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
83     BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
84 private:
85     RefPtr<BackendDispatcher> m_backendDispatcher;
86 };
87
88
89 class AlternateDatabaseBackendDispatcher : public AlternateBackendDispatcher {
90 public:
91     virtual ~AlternateDatabaseBackendDispatcher() { }
92     virtual void executeAllOptionalParameters(long callId, const Inspector::InspectorArray* in_columnNames, const String* const in_notes, const double* const in_timestamp, const Inspector::InspectorObject* in_values, const Inspector::InspectorValue* const in_payload, const int* const in_databaseId, const Inspector::InspectorObject* in_sqlError, const String* const in_screenColor, const Inspector::InspectorArray* in_alternateColors, const String* const in_printColor) = 0;
93     virtual void executeNoOptionalParameters(long callId, const Inspector::InspectorArray& in_columnNames, const String& in_notes, double in_timestamp, const Inspector::InspectorObject& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const Inspector::InspectorObject& in_sqlError, const String& in_screenColor, const Inspector::InspectorArray& in_alternateColors, const String& in_printColor) = 0;
94 };
95
96 } // namespace Inspector
97
98 #endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
99 ### End File: TestAlternateBackendDispatchers.h
100
101 ### Begin File: TestBackendDispatchers.h
102 /*
103  * Copyright (C) 2013 Google Inc. All rights reserved.
104  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
105  * Copyright (C) 2014 University of Washington. All rights reserved.
106  *
107  * Redistribution and use in source and binary forms, with or without
108  * modification, are permitted provided that the following conditions
109  * are met:
110  * 1. Redistributions of source code must retain the above copyright
111  *    notice, this list of conditions and the following disclaimer.
112  * 2. Redistributions in binary form must reproduce the above copyright
113  *    notice, this list of conditions and the following disclaimer in the
114  *    documentation and/or other materials provided with the distribution.
115  *
116  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
117  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
118  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
119  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
120  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
121  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
122  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
123  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
124  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
125  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
126  * THE POSSIBILITY OF SUCH DAMAGE.
127  */
128
129 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
130 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
131
132 #pragma once
133
134 #include "TestProtocolObjects.h"
135 #include <inspector/InspectorBackendDispatcher.h>
136 #include <wtf/text/WTFString.h>
137
138 namespace Inspector {
139
140 typedef String ErrorString;
141
142 #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
143 class AlternateDatabaseBackendDispatcher;
144 #endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
145
146 class DatabaseBackendDispatcherHandler {
147 public:
148     // Named after parameter 'printColor' while generating command/event executeAllOptionalParameters.
149     enum class PrintColor {
150         Cyan = 3,
151         Magenta = 4,
152         Yellow = 5,
153         Black = 6,
154     }; // enum class PrintColor
155     virtual void executeAllOptionalParameters(ErrorString&, const Inspector::InspectorArray* opt_in_columnNames, const String* const opt_in_notes, const double* const opt_in_timestamp, const Inspector::InspectorObject* opt_in_values, const Inspector::InspectorValue* const opt_in_payload, const int* const opt_in_databaseId, const Inspector::InspectorObject* opt_in_sqlError, const String* const opt_in_screenColor, const Inspector::InspectorArray* opt_in_alternateColors, const String* const opt_in_printColor, RefPtr<Inspector::Protocol::Array<String>>& opt_out_columnNames, Inspector::Protocol::OptOutput<String>* opt_out_notes, Inspector::Protocol::OptOutput<double>* opt_out_timestamp, Inspector::Protocol::OptOutput<Inspector::InspectorObject>* opt_out_values, Inspector::Protocol::OptOutput<Inspector::InspectorValue>* opt_out_payload, Inspector::Protocol::OptOutput<int>* opt_out_databaseId, RefPtr<Inspector::Protocol::Database::Error>& opt_out_sqlError, Inspector::Protocol::Database::PrimaryColors* opt_out_screenColor, RefPtr<Inspector::Protocol::Database::ColorList>& opt_out_alternateColors, DatabaseBackendDispatcherHandler::PrintColor* opt_out_printColor) = 0;
156     virtual void executeNoOptionalParameters(ErrorString&, const Inspector::InspectorArray& in_columnNames, const String& in_notes, double in_timestamp, const Inspector::InspectorObject& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const Inspector::InspectorObject& in_sqlError, const String& in_screenColor, const Inspector::InspectorArray& in_alternateColors, const String& in_printColor, RefPtr<Inspector::Protocol::Array<String>>& out_columnNames, String* out_notes, double* out_timestamp, Inspector::InspectorObject* out_values, Inspector::InspectorValue* out_payload, int* out_databaseId, RefPtr<Inspector::Protocol::Database::Error>& out_sqlError, Inspector::Protocol::Database::PrimaryColors* out_screenColor, RefPtr<Inspector::Protocol::Database::ColorList>& out_alternateColors, DatabaseBackendDispatcherHandler::PrintColor* out_printColor) = 0;
157 protected:
158     virtual ~DatabaseBackendDispatcherHandler();
159 };
160
161 class DatabaseBackendDispatcher final : public SupplementalBackendDispatcher {
162 public:
163     static Ref<DatabaseBackendDispatcher> create(BackendDispatcher&, DatabaseBackendDispatcherHandler*);
164     void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) override;
165 private:
166     void executeAllOptionalParameters(long requestId, RefPtr<InspectorObject>&& parameters);
167     void executeNoOptionalParameters(long requestId, RefPtr<InspectorObject>&& parameters);
168 #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
169 public:
170     void setAlternateDispatcher(AlternateDatabaseBackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
171 private:
172     AlternateDatabaseBackendDispatcher* m_alternateDispatcher { nullptr };
173 #endif
174 private:
175     DatabaseBackendDispatcher(BackendDispatcher&, DatabaseBackendDispatcherHandler*);
176     DatabaseBackendDispatcherHandler* m_agent { nullptr };
177 };
178
179 } // namespace Inspector
180 ### End File: TestBackendDispatchers.h
181
182 ### Begin File: TestBackendDispatchers.cpp
183 /*
184  * Copyright (C) 2013 Google Inc. All rights reserved.
185  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
186  * Copyright (C) 2014 University of Washington. All rights reserved.
187  *
188  * Redistribution and use in source and binary forms, with or without
189  * modification, are permitted provided that the following conditions
190  * are met:
191  * 1. Redistributions of source code must retain the above copyright
192  *    notice, this list of conditions and the following disclaimer.
193  * 2. Redistributions in binary form must reproduce the above copyright
194  *    notice, this list of conditions and the following disclaimer in the
195  *    documentation and/or other materials provided with the distribution.
196  *
197  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
198  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
199  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
200  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
201  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
202  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
203  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
204  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
205  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
206  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
207  * THE POSSIBILITY OF SUCH DAMAGE.
208  */
209
210 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
211 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
212
213 #include "config.h"
214 #include "TestBackendDispatchers.h"
215
216 #include <inspector/InspectorFrontendRouter.h>
217 #include <inspector/InspectorValues.h>
218 #include <wtf/NeverDestroyed.h>
219 #include <wtf/text/CString.h>
220
221 #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
222 #include "TestAlternateBackendDispatchers.h"
223 #endif
224
225 namespace Inspector {
226
227 DatabaseBackendDispatcherHandler::~DatabaseBackendDispatcherHandler() { }
228
229 Ref<DatabaseBackendDispatcher> DatabaseBackendDispatcher::create(BackendDispatcher& backendDispatcher, DatabaseBackendDispatcherHandler* agent)
230 {
231     return adoptRef(*new DatabaseBackendDispatcher(backendDispatcher, agent));
232 }
233
234 DatabaseBackendDispatcher::DatabaseBackendDispatcher(BackendDispatcher& backendDispatcher, DatabaseBackendDispatcherHandler* agent)
235     : SupplementalBackendDispatcher(backendDispatcher)
236     , m_agent(agent)
237 {
238     m_backendDispatcher->registerDispatcherForDomain(ASCIILiteral("Database"), this);
239 }
240
241 void DatabaseBackendDispatcher::dispatch(long requestId, const String& method, Ref<InspectorObject>&& message)
242 {
243     Ref<DatabaseBackendDispatcher> protect(*this);
244
245     RefPtr<InspectorObject> parameters;
246     message->getObject(ASCIILiteral("params"), parameters);
247
248     if (method == "executeAllOptionalParameters")
249         executeAllOptionalParameters(requestId, WTFMove(parameters));
250     else if (method == "executeNoOptionalParameters")
251         executeNoOptionalParameters(requestId, WTFMove(parameters));
252     else
253         m_backendDispatcher->reportProtocolError(BackendDispatcher::MethodNotFound, makeString('\'', "Database", '.', method, "' was not found"));
254 }
255
256 void DatabaseBackendDispatcher::executeAllOptionalParameters(long requestId, RefPtr<InspectorObject>&& parameters)
257 {
258     bool opt_in_columnNames_valueFound = false;
259     RefPtr<Inspector::InspectorArray> opt_in_columnNames = m_backendDispatcher->getArray(parameters.get(), ASCIILiteral("columnNames"), &opt_in_columnNames_valueFound);
260     bool opt_in_notes_valueFound = false;
261     String opt_in_notes = m_backendDispatcher->getString(parameters.get(), ASCIILiteral("notes"), &opt_in_notes_valueFound);
262     bool opt_in_timestamp_valueFound = false;
263     Inspector::Protocol::OptOutput<double> opt_in_timestamp = m_backendDispatcher->getDouble(parameters.get(), ASCIILiteral("timestamp"), &opt_in_timestamp_valueFound);
264     bool opt_in_values_valueFound = false;
265     RefPtr<Inspector::InspectorObject> opt_in_values = m_backendDispatcher->getObject(parameters.get(), ASCIILiteral("values"), &opt_in_values_valueFound);
266     bool opt_in_payload_valueFound = false;
267     RefPtr<Inspector::InspectorValue> opt_in_payload = m_backendDispatcher->getValue(parameters.get(), ASCIILiteral("payload"), &opt_in_payload_valueFound);
268     bool opt_in_databaseId_valueFound = false;
269     int opt_in_databaseId = m_backendDispatcher->getInteger(parameters.get(), ASCIILiteral("databaseId"), &opt_in_databaseId_valueFound);
270     bool opt_in_sqlError_valueFound = false;
271     RefPtr<Inspector::InspectorObject> opt_in_sqlError = m_backendDispatcher->getObject(parameters.get(), ASCIILiteral("sqlError"), &opt_in_sqlError_valueFound);
272     bool opt_in_screenColor_valueFound = false;
273     String opt_in_screenColor = m_backendDispatcher->getString(parameters.get(), ASCIILiteral("screenColor"), &opt_in_screenColor_valueFound);
274     bool opt_in_alternateColors_valueFound = false;
275     RefPtr<Inspector::InspectorArray> opt_in_alternateColors = m_backendDispatcher->getArray(parameters.get(), ASCIILiteral("alternateColors"), &opt_in_alternateColors_valueFound);
276     bool opt_in_printColor_valueFound = false;
277     String opt_in_printColor = m_backendDispatcher->getString(parameters.get(), ASCIILiteral("printColor"), &opt_in_printColor_valueFound);
278     if (m_backendDispatcher->hasProtocolErrors()) {
279         m_backendDispatcher->reportProtocolError(BackendDispatcher::InvalidParams, String::format("Some arguments of method '%s' can't be processed", "Database.executeAllOptionalParameters"));
280         return;
281     }
282
283 #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
284     if (m_alternateDispatcher) {
285         m_alternateDispatcher->executeAllOptionalParameters(requestId, opt_in_columnNames_valueFound ? opt_in_columnNames.get() : nullptr, opt_in_notes_valueFound ? &opt_in_notes : nullptr, opt_in_timestamp_valueFound ? &opt_in_timestamp : nullptr, opt_in_values_valueFound ? opt_in_values.get() : nullptr, opt_in_payload_valueFound ? opt_in_payload.get() : nullptr, opt_in_databaseId_valueFound ? &opt_in_databaseId : nullptr, opt_in_sqlError_valueFound ? opt_in_sqlError.get() : nullptr, opt_in_screenColor_valueFound ? &opt_in_screenColor : nullptr, opt_in_alternateColors_valueFound ? opt_in_alternateColors.get() : nullptr, opt_in_printColor_valueFound ? &opt_in_printColor : nullptr);
286         return;
287     }
288 #endif
289
290     ErrorString error;
291     Ref<InspectorObject> result = InspectorObject::create();
292     RefPtr<Inspector::Protocol::Array<String>> out_columnNames;
293     Inspector::Protocol::OptOutput<String> out_notes;
294     Inspector::Protocol::OptOutput<double> out_timestamp;
295     Inspector::Protocol::OptOutput<Inspector::InspectorObject> out_values;
296     Inspector::Protocol::OptOutput<Inspector::InspectorValue> out_payload;
297     Inspector::Protocol::OptOutput<Inspector::Protocol::Database::DatabaseId> out_databaseId;
298     RefPtr<Inspector::Protocol::Database::Error> out_sqlError;
299     Inspector::Protocol::Database::PrimaryColors out_screenColor;
300     RefPtr<Inspector::Protocol::Database::ColorList> out_alternateColors;
301     DatabaseBackendDispatcherHandler::PrintColor out_printColor;
302     m_agent->executeAllOptionalParameters(error, opt_in_columnNames_valueFound ? opt_in_columnNames.get() : nullptr, opt_in_notes_valueFound ? &opt_in_notes : nullptr, opt_in_timestamp_valueFound ? &opt_in_timestamp : nullptr, opt_in_values_valueFound ? opt_in_values.get() : nullptr, opt_in_payload_valueFound ? opt_in_payload.get() : nullptr, opt_in_databaseId_valueFound ? &opt_in_databaseId : nullptr, opt_in_sqlError_valueFound ? opt_in_sqlError.get() : nullptr, opt_in_screenColor_valueFound ? &opt_in_screenColor : nullptr, opt_in_alternateColors_valueFound ? opt_in_alternateColors.get() : nullptr, opt_in_printColor_valueFound ? &opt_in_printColor : nullptr, out_columnNames, &out_notes, &out_timestamp, out_values, &out_payload, &out_databaseId, out_sqlError, &out_screenColor, out_alternateColors, &out_printColor);
303
304     if (!error.length()) {
305         if (out_columnNames)
306             result->setArray(ASCIILiteral("columnNames"), out_columnNames);
307         if (out_notes.isAssigned())
308             result->setString(ASCIILiteral("notes"), out_notes.getValue());
309         if (out_timestamp.isAssigned())
310             result->setDouble(ASCIILiteral("timestamp"), out_timestamp.getValue());
311         if (out_values.isAssigned())
312             result->setObject(ASCIILiteral("values"), out_values.getValue());
313         if (out_payload.isAssigned())
314             result->setValue(ASCIILiteral("payload"), out_payload.getValue());
315         if (out_databaseId.isAssigned())
316             result->setInteger(ASCIILiteral("databaseId"), out_databaseId.getValue());
317         if (out_sqlError)
318             result->setObject(ASCIILiteral("sqlError"), out_sqlError);
319         if (out_screenColor.isAssigned())
320             result->setString(ASCIILiteral("screenColor"), out_screenColor.getValue());
321         if (out_alternateColors)
322             result->setArray(ASCIILiteral("alternateColors"), out_alternateColors);
323         if (out_printColor.isAssigned())
324             result->setString(ASCIILiteral("printColor"), out_printColor.getValue());
325     }
326     if (!error.length())
327         m_backendDispatcher->sendResponse(requestId, WTFMove(result));
328     else
329         m_backendDispatcher->reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
330 }
331
332 void DatabaseBackendDispatcher::executeNoOptionalParameters(long requestId, RefPtr<InspectorObject>&& parameters)
333 {
334     RefPtr<Inspector::InspectorArray> in_columnNames = m_backendDispatcher->getArray(parameters.get(), ASCIILiteral("columnNames"), nullptr);
335     String in_notes = m_backendDispatcher->getString(parameters.get(), ASCIILiteral("notes"), nullptr);
336     double in_timestamp = m_backendDispatcher->getDouble(parameters.get(), ASCIILiteral("timestamp"), nullptr);
337     RefPtr<Inspector::InspectorObject> in_values = m_backendDispatcher->getObject(parameters.get(), ASCIILiteral("values"), nullptr);
338     RefPtr<Inspector::InspectorValue> in_payload = m_backendDispatcher->getValue(parameters.get(), ASCIILiteral("payload"), nullptr);
339     int in_databaseId = m_backendDispatcher->getInteger(parameters.get(), ASCIILiteral("databaseId"), nullptr);
340     RefPtr<Inspector::InspectorObject> in_sqlError = m_backendDispatcher->getObject(parameters.get(), ASCIILiteral("sqlError"), nullptr);
341     String in_screenColor = m_backendDispatcher->getString(parameters.get(), ASCIILiteral("screenColor"), nullptr);
342     RefPtr<Inspector::InspectorArray> in_alternateColors = m_backendDispatcher->getArray(parameters.get(), ASCIILiteral("alternateColors"), nullptr);
343     String in_printColor = m_backendDispatcher->getString(parameters.get(), ASCIILiteral("printColor"), nullptr);
344     if (m_backendDispatcher->hasProtocolErrors()) {
345         m_backendDispatcher->reportProtocolError(BackendDispatcher::InvalidParams, String::format("Some arguments of method '%s' can't be processed", "Database.executeNoOptionalParameters"));
346         return;
347     }
348
349 #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
350     if (m_alternateDispatcher) {
351         m_alternateDispatcher->executeNoOptionalParameters(requestId, *in_columnNames, in_notes, in_timestamp, *in_values, *in_payload, in_databaseId, *in_sqlError, in_screenColor, *in_alternateColors, in_printColor);
352         return;
353     }
354 #endif
355
356     ErrorString error;
357     Ref<InspectorObject> result = InspectorObject::create();
358     RefPtr<Inspector::Protocol::Array<String>> out_columnNames;
359     String out_notes;
360     double out_timestamp;
361     Inspector::InspectorObject out_values;
362     Inspector::InspectorValue out_payload;
363     Inspector::Protocol::Database::DatabaseId out_databaseId;
364     RefPtr<Inspector::Protocol::Database::Error> out_sqlError;
365     Inspector::Protocol::Database::PrimaryColors out_screenColor;
366     RefPtr<Inspector::Protocol::Database::ColorList> out_alternateColors;
367     DatabaseBackendDispatcherHandler::PrintColor out_printColor;
368     m_agent->executeNoOptionalParameters(error, *in_columnNames, in_notes, in_timestamp, *in_values, *in_payload, in_databaseId, *in_sqlError, in_screenColor, *in_alternateColors, in_printColor, out_columnNames, &out_notes, &out_timestamp, out_values, &out_payload, &out_databaseId, out_sqlError, &out_screenColor, out_alternateColors, &out_printColor);
369
370     if (!error.length()) {
371         result->setArray(ASCIILiteral("columnNames"), out_columnNames);
372         result->setString(ASCIILiteral("notes"), out_notes);
373         result->setDouble(ASCIILiteral("timestamp"), out_timestamp);
374         result->setObject(ASCIILiteral("values"), out_values);
375         result->setValue(ASCIILiteral("payload"), out_payload);
376         result->setInteger(ASCIILiteral("databaseId"), out_databaseId);
377         result->setObject(ASCIILiteral("sqlError"), out_sqlError);
378         result->setString(ASCIILiteral("screenColor"), Inspector::Protocol::TestHelpers::getEnumConstantValue(out_screenColor));
379         result->setArray(ASCIILiteral("alternateColors"), out_alternateColors);
380         result->setString(ASCIILiteral("printColor"), Inspector::Protocol::TestHelpers::getEnumConstantValue(out_printColor));
381     }
382     if (!error.length())
383         m_backendDispatcher->sendResponse(requestId, WTFMove(result));
384     else
385         m_backendDispatcher->reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
386 }
387
388 } // namespace Inspector
389
390 ### End File: TestBackendDispatchers.cpp
391
392 ### Begin File: TestFrontendDispatchers.h
393 /*
394  * Copyright (C) 2013 Google Inc. All rights reserved.
395  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
396  * Copyright (C) 2014 University of Washington. All rights reserved.
397  *
398  * Redistribution and use in source and binary forms, with or without
399  * modification, are permitted provided that the following conditions
400  * are met:
401  * 1. Redistributions of source code must retain the above copyright
402  *    notice, this list of conditions and the following disclaimer.
403  * 2. Redistributions in binary form must reproduce the above copyright
404  *    notice, this list of conditions and the following disclaimer in the
405  *    documentation and/or other materials provided with the distribution.
406  *
407  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
408  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
409  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
410  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
411  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
412  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
413  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
414  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
415  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
416  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
417  * THE POSSIBILITY OF SUCH DAMAGE.
418  */
419
420 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
421 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
422
423 #pragma once
424
425 #include "TestProtocolObjects.h"
426 #include <inspector/InspectorValues.h>
427 #include <wtf/text/WTFString.h>
428
429 namespace Inspector {
430
431 class FrontendRouter;
432
433 } // namespace Inspector
434 ### End File: TestFrontendDispatchers.h
435
436 ### Begin File: TestFrontendDispatchers.cpp
437 /*
438  * Copyright (C) 2013 Google Inc. All rights reserved.
439  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
440  * Copyright (C) 2014 University of Washington. All rights reserved.
441  *
442  * Redistribution and use in source and binary forms, with or without
443  * modification, are permitted provided that the following conditions
444  * are met:
445  * 1. Redistributions of source code must retain the above copyright
446  *    notice, this list of conditions and the following disclaimer.
447  * 2. Redistributions in binary form must reproduce the above copyright
448  *    notice, this list of conditions and the following disclaimer in the
449  *    documentation and/or other materials provided with the distribution.
450  *
451  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
452  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
453  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
454  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
455  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
456  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
457  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
458  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
459  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
460  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
461  * THE POSSIBILITY OF SUCH DAMAGE.
462  */
463
464 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
465 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
466
467 #include "config.h"
468 #include "TestFrontendDispatchers.h"
469
470 #include "InspectorFrontendRouter.h"
471 #include <wtf/text/CString.h>
472
473 namespace Inspector {
474
475 } // namespace Inspector
476
477 ### End File: TestFrontendDispatchers.cpp
478
479 ### Begin File: TestProtocolObjects.h
480 /*
481  * Copyright (C) 2013 Google Inc. All rights reserved.
482  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
483  * Copyright (C) 2014 University of Washington. All rights reserved.
484  *
485  * Redistribution and use in source and binary forms, with or without
486  * modification, are permitted provided that the following conditions
487  * are met:
488  * 1. Redistributions of source code must retain the above copyright
489  *    notice, this list of conditions and the following disclaimer.
490  * 2. Redistributions in binary form must reproduce the above copyright
491  *    notice, this list of conditions and the following disclaimer in the
492  *    documentation and/or other materials provided with the distribution.
493  *
494  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
495  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
496  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
497  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
498  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
499  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
500  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
501  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
502  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
503  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
504  * THE POSSIBILITY OF SUCH DAMAGE.
505  */
506
507 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
508 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
509
510 #pragma once
511
512 #include <inspector/InspectorProtocolTypes.h>
513 #include <wtf/Assertions.h>
514
515 namespace Inspector {
516
517
518
519 namespace Protocol {
520
521 // Forward declarations.
522 namespace Database {
523 class Error;
524 enum class PrimaryColors;
525 } // Database
526 // End of forward declarations.
527
528
529 // Typedefs.
530 namespace Database {
531 /* Unique identifier of Database object. */
532 typedef int DatabaseId;
533 typedef Inspector::Protocol::Array<Inspector::Protocol::Database::PrimaryColors> ColorList;
534 } // Database
535 // End of typedefs.
536
537 namespace TestHelpers {
538
539 String getEnumConstantValue(int code);
540
541 template<typename T> String getEnumConstantValue(T enumValue)
542 {
543     return getEnumConstantValue(static_cast<int>(enumValue));
544 }
545
546 } // namespace TestHelpers
547
548 namespace Database {
549 /*  */
550 enum class PrimaryColors {
551     Red = 0,
552     Green = 1,
553     Blue = 2,
554 }; // enum class PrimaryColors
555 /* Database error. */
556 class Error : public Inspector::InspectorObjectBase {
557 public:
558     enum {
559         NoFieldsSet = 0,
560         MessageSet = 1 << 0,
561         CodeSet = 1 << 1,
562         AllFieldsSet = (MessageSet | CodeSet)
563     };
564
565     template<int STATE>
566     class Builder {
567     private:
568         RefPtr<InspectorObject> m_result;
569
570         template<int STEP> Builder<STATE | STEP>& castState()
571         {
572             return *reinterpret_cast<Builder<STATE | STEP>*>(this);
573         }
574
575         Builder(Ref</*Error*/InspectorObject>&& object)
576             : m_result(WTFMove(object))
577         {
578             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
579         }
580         friend class Error;
581     public:
582
583         Builder<STATE | MessageSet>& setMessage(const String& value)
584         {
585             COMPILE_ASSERT(!(STATE & MessageSet), property_message_already_set);
586             m_result->setString(ASCIILiteral("message"), value);
587             return castState<MessageSet>();
588         }
589
590         Builder<STATE | CodeSet>& setCode(int value)
591         {
592             COMPILE_ASSERT(!(STATE & CodeSet), property_code_already_set);
593             m_result->setInteger(ASCIILiteral("code"), value);
594             return castState<CodeSet>();
595         }
596
597         Ref<Error> release()
598         {
599             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
600             COMPILE_ASSERT(sizeof(Error) == sizeof(InspectorObject), cannot_cast);
601
602             Ref<InspectorObject> result = m_result.releaseNonNull();
603             return WTFMove(*reinterpret_cast<Ref<Error>*>(&result));
604         }
605     };
606
607     /*
608      * Synthetic constructor:
609      * Ref<Error> result = Error::create()
610      *     .setMessage(...)
611      *     .setCode(...)
612      *     .release();
613      */
614     static Builder<NoFieldsSet> create()
615     {
616         return Builder<NoFieldsSet>(InspectorObject::create());
617     }
618 };
619
620 } // Database
621
622
623
624 namespace TestHelpers {
625
626 template<typename ProtocolEnumType>
627 std::optional<ProtocolEnumType> parseEnumValueFromString(const String&);
628
629 // Enums in the 'Database' Domain
630 template<>
631 std::optional<Inspector::Protocol::Database::PrimaryColors> parseEnumValueFromString<Inspector::Protocol::Database::PrimaryColors>(const String&);
632
633 } // namespace TestHelpers
634
635 } // namespace Protocol
636
637 } // namespace Inspector
638 ### End File: TestProtocolObjects.h
639
640 ### Begin File: TestProtocolObjects.cpp
641 /*
642  * Copyright (C) 2013 Google Inc. All rights reserved.
643  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
644  * Copyright (C) 2014 University of Washington. All rights reserved.
645  *
646  * Redistribution and use in source and binary forms, with or without
647  * modification, are permitted provided that the following conditions
648  * are met:
649  * 1. Redistributions of source code must retain the above copyright
650  *    notice, this list of conditions and the following disclaimer.
651  * 2. Redistributions in binary form must reproduce the above copyright
652  *    notice, this list of conditions and the following disclaimer in the
653  *    documentation and/or other materials provided with the distribution.
654  *
655  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
656  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
657  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
658  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
659  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
660  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
661  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
662  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
663  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
664  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
665  * THE POSSIBILITY OF SUCH DAMAGE.
666  */
667
668 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
669 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
670
671 #include "config.h"
672 #include "TestProtocolObjects.h"
673
674 #include <wtf/Optional.h>
675 #include <wtf/text/CString.h>
676
677 namespace Inspector {
678
679 namespace Protocol {
680
681 namespace TestHelpers {
682
683 static const char* const enum_constant_values[] = {
684     "red",
685     "green",
686     "blue",
687     "cyan",
688     "magenta",
689     "yellow",
690     "black",
691 };
692
693 String getEnumConstantValue(int code) {
694     return enum_constant_values[code];
695 }
696
697 // Enums in the 'Database' Domain
698 template<>
699 std::optional<Inspector::Protocol::Database::PrimaryColors> parseEnumValueFromString<Inspector::Protocol::Database::PrimaryColors>(const String& protocolString)
700 {
701     static const size_t constantValues[] = {
702         (size_t)Inspector::Protocol::Database::PrimaryColors::Red,
703         (size_t)Inspector::Protocol::Database::PrimaryColors::Green,
704         (size_t)Inspector::Protocol::Database::PrimaryColors::Blue,
705     };
706     for (size_t i = 0; i < 3; ++i)
707         if (protocolString == enum_constant_values[constantValues[i]])
708             return (Inspector::Protocol::Database::PrimaryColors)constantValues[i];
709
710     return std::nullopt;
711 }
712
713
714 } // namespace TestHelpers
715
716
717
718 } // namespace Protocol
719
720 } // namespace Inspector
721
722 ### End File: TestProtocolObjects.cpp
723
724 ### Begin File: TestProtocolBackendDispatchers.h
725 /*
726  * Copyright (C) 2013 Google Inc. All rights reserved.
727  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
728  * Copyright (C) 2014 University of Washington. All rights reserved.
729  *
730  * Redistribution and use in source and binary forms, with or without
731  * modification, are permitted provided that the following conditions
732  * are met:
733  * 1. Redistributions of source code must retain the above copyright
734  *    notice, this list of conditions and the following disclaimer.
735  * 2. Redistributions in binary form must reproduce the above copyright
736  *    notice, this list of conditions and the following disclaimer in the
737  *    documentation and/or other materials provided with the distribution.
738  *
739  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
740  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
741  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
742  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
743  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
744  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
745  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
746  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
747  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
748  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
749  * THE POSSIBILITY OF SUCH DAMAGE.
750  */
751
752 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
753 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
754
755 #include <JavaScriptCore/InspectorAlternateBackendDispatchers.h>
756 #include <wtf/RetainPtr.h>
757
758 @protocol TestProtocolDatabaseDomainHandler;
759
760 namespace Inspector {
761
762
763 class ObjCInspectorDatabaseBackendDispatcher final : public AlternateDatabaseBackendDispatcher {
764 public:
765     ObjCInspectorDatabaseBackendDispatcher(id<TestProtocolDatabaseDomainHandler> handler) { m_delegate = handler; }
766     virtual void executeAllOptionalParameters(long requestId, const Inspector::InspectorArray* in_columnNames, const String* const in_notes, const double* const in_timestamp, const Inspector::InspectorObject* in_values, const Inspector::InspectorValue* const in_payload, const int* const in_databaseId, const Inspector::InspectorObject* in_sqlError, const String* const in_screenColor, const Inspector::InspectorArray* in_alternateColors, const String* const in_printColor) override;
767     virtual void executeNoOptionalParameters(long requestId, const Inspector::InspectorArray& in_columnNames, const String& in_notes, double in_timestamp, const Inspector::InspectorObject& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const Inspector::InspectorObject& in_sqlError, const String& in_screenColor, const Inspector::InspectorArray& in_alternateColors, const String& in_printColor) override;
768 private:
769     RetainPtr<id<TestProtocolDatabaseDomainHandler>> m_delegate;
770 };
771
772 } // namespace Inspector
773
774 ### End File: TestProtocolBackendDispatchers.h
775
776 ### Begin File: TestProtocolConfiguration.mm
777 /*
778  * Copyright (C) 2013 Google Inc. All rights reserved.
779  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
780  * Copyright (C) 2014 University of Washington. All rights reserved.
781  *
782  * Redistribution and use in source and binary forms, with or without
783  * modification, are permitted provided that the following conditions
784  * are met:
785  * 1. Redistributions of source code must retain the above copyright
786  *    notice, this list of conditions and the following disclaimer.
787  * 2. Redistributions in binary form must reproduce the above copyright
788  *    notice, this list of conditions and the following disclaimer in the
789  *    documentation and/or other materials provided with the distribution.
790  *
791  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
792  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
793  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
794  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
795  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
796  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
797  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
798  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
799  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
800  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
801  * THE POSSIBILITY OF SUCH DAMAGE.
802  */
803
804 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
805 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
806
807 #import "config.h"
808 #import "TestProtocolConfiguration.h"
809
810 #import "TestProtocolInternal.h"
811 #import "TestProtocolBackendDispatchers.h"
812 #import <JavaScriptCore/AlternateDispatchableAgent.h>
813 #import <JavaScriptCore/AugmentableInspectorController.h>
814 #import <JavaScriptCore/InspectorAlternateBackendDispatchers.h>
815 #import <JavaScriptCore/InspectorBackendDispatchers.h>
816
817 using namespace Inspector;
818
819 @implementation TestProtocolConfiguration
820 {
821     AugmentableInspectorController* _controller;
822     id<TestProtocolDatabaseDomainHandler> _databaseHandler;
823 }
824
825 - (instancetype)initWithController:(AugmentableInspectorController*)controller
826 {
827     self = [super init];
828     if (!self)
829         return nil;
830     ASSERT(controller);
831     _controller = controller;
832     return self;
833 }
834
835 - (void)dealloc
836 {
837     [_databaseHandler release];
838     [super dealloc];
839 }
840
841 - (void)setDatabaseHandler:(id<TestProtocolDatabaseDomainHandler>)handler
842 {
843     if (handler == _databaseHandler)
844         return;
845
846     [_databaseHandler release];
847     _databaseHandler = [handler retain];
848
849     auto alternateDispatcher = std::make_unique<ObjCInspectorDatabaseBackendDispatcher>(handler);
850     auto alternateAgent = std::make_unique<AlternateDispatchableAgent<DatabaseBackendDispatcher, AlternateDatabaseBackendDispatcher>>(ASCIILiteral("Database"), *_controller, WTFMove(alternateDispatcher));
851     _controller->appendExtraAgent(WTFMove(alternateAgent));
852 }
853
854 - (id<TestProtocolDatabaseDomainHandler>)databaseHandler
855 {
856     return _databaseHandler;
857 }
858
859 @end
860
861
862 ### End File: TestProtocolConfiguration.mm
863
864 ### Begin File: TestProtocolConfiguration.h
865 /*
866  * Copyright (C) 2013 Google Inc. All rights reserved.
867  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
868  * Copyright (C) 2014 University of Washington. All rights reserved.
869  *
870  * Redistribution and use in source and binary forms, with or without
871  * modification, are permitted provided that the following conditions
872  * are met:
873  * 1. Redistributions of source code must retain the above copyright
874  *    notice, this list of conditions and the following disclaimer.
875  * 2. Redistributions in binary form must reproduce the above copyright
876  *    notice, this list of conditions and the following disclaimer in the
877  *    documentation and/or other materials provided with the distribution.
878  *
879  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
880  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
881  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
882  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
883  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
884  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
885  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
886  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
887  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
888  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
889  * THE POSSIBILITY OF SUCH DAMAGE.
890  */
891
892 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
893 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
894
895 #import <WebInspector/TestProtocol.h>
896
897 __attribute__((visibility ("default")))
898 @interface TestProtocolConfiguration : NSObject
899 @property (nonatomic, retain, setter=setDatabaseHandler:) id<TestProtocolDatabaseDomainHandler> databaseHandler;
900 @end
901
902
903 ### End File: TestProtocolConfiguration.h
904
905 ### Begin File: TestProtocolBackendDispatchers.mm
906 /*
907  * Copyright (C) 2013 Google Inc. All rights reserved.
908  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
909  * Copyright (C) 2014 University of Washington. All rights reserved.
910  *
911  * Redistribution and use in source and binary forms, with or without
912  * modification, are permitted provided that the following conditions
913  * are met:
914  * 1. Redistributions of source code must retain the above copyright
915  *    notice, this list of conditions and the following disclaimer.
916  * 2. Redistributions in binary form must reproduce the above copyright
917  *    notice, this list of conditions and the following disclaimer in the
918  *    documentation and/or other materials provided with the distribution.
919  *
920  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
921  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
922  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
923  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
924  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
925  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
926  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
927  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
928  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
929  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
930  * THE POSSIBILITY OF SUCH DAMAGE.
931  */
932
933 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
934 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
935
936 #import "config.h"
937 #import "TestProtocolBackendDispatchers.h"
938
939 #include "TestProtocolInternal.h"
940 #include "TestProtocolTypeConversions.h"
941 #include <JavaScriptCore/InspectorValues.h>
942
943 namespace Inspector {
944
945 void ObjCInspectorDatabaseBackendDispatcher::executeAllOptionalParameters(long requestId, const Inspector::InspectorArray* in_columnNames, const String* const in_notes, const double* const in_timestamp, const Inspector::InspectorObject* in_values, const Inspector::InspectorValue* const in_payload, const int* const in_databaseId, const Inspector::InspectorObject* in_sqlError, const String* const in_screenColor, const Inspector::InspectorArray* in_alternateColors, const String* const in_printColor)
946 {
947     id errorCallback = ^(NSString *error) {
948         backendDispatcher()->reportProtocolError(requestId, BackendDispatcher::ServerError, error);
949         backendDispatcher()->sendPendingErrors();
950     };
951
952     id successCallback = ^(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, TestProtocolDatabaseError **sqlError, TestProtocolDatabasePrimaryColors *screenColor, NSArray/*<NSString>*/ **alternateColors, TestProtocolDatabaseExecuteAllOptionalParametersPrintColor *printColor) {
953         Ref<InspectorObject> resultObject = InspectorObject::create();
954         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @"columnNames");
955         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @"notes");
956         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @"values");
957         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @"payload");
958         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @"sqlError");
959         THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(alternateColors, @"alternateColors");
960         if (columnNames)
961             resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(*columnNames));
962         if (notes)
963             resultObject->setString(ASCIILiteral("notes"), *notes);
964         if (timestamp)
965             resultObject->setDouble(ASCIILiteral("timestamp"), *timestamp);
966         if (values)
967             resultObject->setObject(ASCIILiteral("values"), [*values toInspectorObject]);
968         if (payload)
969             resultObject->setValue(ASCIILiteral("payload"), [*payload toInspectorObject]);
970         if (databaseId)
971             resultObject->setInteger(ASCIILiteral("databaseId"), *databaseId);
972         if (sqlError)
973             resultObject->setObject(ASCIILiteral("sqlError"), [*sqlError toInspectorObject]);
974         if (screenColor)
975             resultObject->setString(ASCIILiteral("screenColor"), toProtocolString(*screenColor));
976         if (alternateColors)
977             resultObject->setArray(ASCIILiteral("alternateColors"), inspectorStringArray(*alternateColors));
978         if (printColor)
979             resultObject->setString(ASCIILiteral("printColor"), toProtocolString(*printColor));
980         backendDispatcher()->sendResponse(requestId, WTFMove(resultObject));
981     };
982
983     NSArray/*<NSString>*/ *o_in_columnNames;
984     if (in_columnNames)
985         o_in_columnNames = objcStringArray(in_columnNames);
986     NSString *o_in_notes;
987     if (in_notes)
988         o_in_notes = *in_notes;
989     double o_in_timestamp;
990     if (in_timestamp)
991         o_in_timestamp = *in_timestamp;
992     RWIProtocolJSONObject *o_in_values;
993     if (in_values)
994         o_in_values = [[[RWIProtocolJSONObject alloc] initWithInspectorObject:in_values] autorelease];
995     RWIProtocolJSONObject *o_in_payload;
996     if (in_payload)
997         o_in_payload = [[[RWIProtocolJSONObject alloc] initWithInspectorObject:in_payload] autorelease];
998     int o_in_databaseId;
999     if (in_databaseId)
1000         o_in_databaseId = *in_databaseId;
1001     TestProtocolDatabaseError *o_in_sqlError;
1002     if (in_sqlError)
1003         o_in_sqlError = [[[TestProtocolDatabaseError alloc] initWithInspectorObject:in_sqlError] autorelease];
1004     TestProtocolDatabasePrimaryColors o_in_screenColor;
1005     if (in_screenColor)
1006         o_in_screenColor = fromProtocolString<TestProtocolDatabasePrimaryColors>(*in_screenColor);
1007     NSArray/*<NSString>*/ *o_in_alternateColors;
1008     if (in_alternateColors)
1009         o_in_alternateColors = objcStringArray(in_alternateColors);
1010     TestProtocolDatabaseExecuteAllOptionalParametersPrintColor o_in_printColor;
1011     if (in_printColor)
1012         o_in_printColor = fromProtocolString<TestProtocolDatabaseExecuteAllOptionalParametersPrintColor>(*in_printColor);
1013
1014     [m_delegate executeAllOptionalParametersWithErrorCallback:errorCallback successCallback:successCallback columnNames:(in_columnNames ? &o_in_columnNames : nil) notes:(in_notes ? &o_in_notes : nil) timestamp:(in_timestamp ? &o_in_timestamp : nil) values:(in_values ? &o_in_values : nil) payload:(in_payload ? &o_in_payload : nil) databaseId:(in_databaseId ? &o_in_databaseId : nil) sqlError:(in_sqlError ? &o_in_sqlError : nil) screenColor:(in_screenColor ? &o_in_screenColor : nil) alternateColors:(in_alternateColors ? &o_in_alternateColors : nil) printColor:(in_printColor ? &o_in_printColor : nil)];
1015 }
1016
1017 void ObjCInspectorDatabaseBackendDispatcher::executeNoOptionalParameters(long requestId, const Inspector::InspectorArray& in_columnNames, const String& in_notes, double in_timestamp, const Inspector::InspectorObject& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const Inspector::InspectorObject& in_sqlError, const String& in_screenColor, const Inspector::InspectorArray& in_alternateColors, const String& in_printColor)
1018 {
1019     id errorCallback = ^(NSString *error) {
1020         backendDispatcher()->reportProtocolError(requestId, BackendDispatcher::ServerError, error);
1021         backendDispatcher()->sendPendingErrors();
1022     };
1023
1024     id successCallback = ^(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, TestProtocolDatabaseError *sqlError, TestProtocolDatabasePrimaryColors screenColor, NSArray/*<NSString>*/ *alternateColors, TestProtocolDatabaseExecuteNoOptionalParametersPrintColor printColor) {
1025         Ref<InspectorObject> resultObject = InspectorObject::create();
1026         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @"columnNames");
1027         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @"notes");
1028         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @"values");
1029         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @"payload");
1030         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @"sqlError");
1031         THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(alternateColors, @"alternateColors");
1032         resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(columnNames));
1033         resultObject->setString(ASCIILiteral("notes"), notes);
1034         resultObject->setDouble(ASCIILiteral("timestamp"), timestamp);
1035         resultObject->setObject(ASCIILiteral("values"), [values toInspectorObject]);
1036         resultObject->setValue(ASCIILiteral("payload"), [payload toInspectorObject]);
1037         resultObject->setInteger(ASCIILiteral("databaseId"), databaseId);
1038         resultObject->setObject(ASCIILiteral("sqlError"), [sqlError toInspectorObject]);
1039         resultObject->setString(ASCIILiteral("screenColor"), toProtocolString(screenColor));
1040         resultObject->setArray(ASCIILiteral("alternateColors"), inspectorStringArray(alternateColors));
1041         resultObject->setString(ASCIILiteral("printColor"), toProtocolString(printColor));
1042         backendDispatcher()->sendResponse(requestId, WTFMove(resultObject));
1043     };
1044
1045     NSArray/*<NSString>*/ *o_in_columnNames = objcStringArray(&in_columnNames);
1046     NSString *o_in_notes = in_notes;
1047     double o_in_timestamp = in_timestamp;
1048     RWIProtocolJSONObject *o_in_values = [[[RWIProtocolJSONObject alloc] initWithInspectorObject:&in_values] autorelease];
1049     RWIProtocolJSONObject *o_in_payload = [[[RWIProtocolJSONObject alloc] initWithInspectorObject:&in_payload] autorelease];
1050     int o_in_databaseId = in_databaseId;
1051     TestProtocolDatabaseError *o_in_sqlError = [[[TestProtocolDatabaseError alloc] initWithInspectorObject:&in_sqlError] autorelease];
1052     TestProtocolDatabasePrimaryColors o_in_screenColor = fromProtocolString<TestProtocolDatabasePrimaryColors>(in_screenColor);
1053     NSArray/*<NSString>*/ *o_in_alternateColors = objcStringArray(&in_alternateColors);
1054     TestProtocolDatabaseExecuteNoOptionalParametersPrintColor o_in_printColor = fromProtocolString<TestProtocolDatabaseExecuteNoOptionalParametersPrintColor>(in_printColor);
1055
1056     [m_delegate executeNoOptionalParametersWithErrorCallback:errorCallback successCallback:successCallback columnNames:o_in_columnNames notes:o_in_notes timestamp:o_in_timestamp values:o_in_values payload:o_in_payload databaseId:o_in_databaseId sqlError:o_in_sqlError screenColor:o_in_screenColor alternateColors:o_in_alternateColors printColor:o_in_printColor];
1057 }
1058
1059
1060 } // namespace Inspector
1061
1062 ### End File: TestProtocolBackendDispatchers.mm
1063
1064 ### Begin File: TestProtocolEventDispatchers.mm
1065 /*
1066  * Copyright (C) 2013 Google Inc. All rights reserved.
1067  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
1068  * Copyright (C) 2014 University of Washington. All rights reserved.
1069  *
1070  * Redistribution and use in source and binary forms, with or without
1071  * modification, are permitted provided that the following conditions
1072  * are met:
1073  * 1. Redistributions of source code must retain the above copyright
1074  *    notice, this list of conditions and the following disclaimer.
1075  * 2. Redistributions in binary form must reproduce the above copyright
1076  *    notice, this list of conditions and the following disclaimer in the
1077  *    documentation and/or other materials provided with the distribution.
1078  *
1079  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1080  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1081  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1082  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1083  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1084  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1085  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1086  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1087  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1088  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1089  * THE POSSIBILITY OF SUCH DAMAGE.
1090  */
1091
1092 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
1093 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1094
1095 #import "config.h"
1096 #import "TestProtocolInternal.h"
1097
1098 #import "TestProtocolTypeConversions.h"
1099 #import <JavaScriptCore/InspectorValues.h>
1100
1101 using namespace Inspector;
1102
1103
1104
1105
1106 ### End File: TestProtocolEventDispatchers.mm
1107
1108 ### Begin File: TestProtocol.h
1109 /*
1110  * Copyright (C) 2013 Google Inc. All rights reserved.
1111  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
1112  * Copyright (C) 2014 University of Washington. All rights reserved.
1113  *
1114  * Redistribution and use in source and binary forms, with or without
1115  * modification, are permitted provided that the following conditions
1116  * are met:
1117  * 1. Redistributions of source code must retain the above copyright
1118  *    notice, this list of conditions and the following disclaimer.
1119  * 2. Redistributions in binary form must reproduce the above copyright
1120  *    notice, this list of conditions and the following disclaimer in the
1121  *    documentation and/or other materials provided with the distribution.
1122  *
1123  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1124  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1125  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1126  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1127  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1128  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1129  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1130  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1131  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1132  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1133  * THE POSSIBILITY OF SUCH DAMAGE.
1134  */
1135
1136 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
1137 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1138
1139 #import <Foundation/Foundation.h>
1140
1141 #import <WebInspector/RWIProtocolJSONObject.h>
1142
1143
1144 @class TestProtocolDatabaseError;
1145
1146
1147 typedef NS_ENUM(NSInteger, TestProtocolDatabasePrimaryColors) {
1148     TestProtocolDatabasePrimaryColorsRed,
1149     TestProtocolDatabasePrimaryColorsGreen,
1150     TestProtocolDatabasePrimaryColorsBlue,
1151 };
1152
1153 typedef NS_ENUM(NSInteger, TestProtocolDatabaseExecuteAllOptionalParametersPrintColor) {
1154     TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan,
1155     TestProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta,
1156     TestProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow,
1157     TestProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack,
1158 };
1159
1160 typedef NS_ENUM(NSInteger, TestProtocolDatabaseExecuteAllOptionalParametersPrintColor) {
1161     TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan,
1162     TestProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta,
1163     TestProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow,
1164     TestProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack,
1165 };
1166
1167 typedef NS_ENUM(NSInteger, TestProtocolDatabaseExecuteNoOptionalParametersPrintColor) {
1168     TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan,
1169     TestProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta,
1170     TestProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow,
1171     TestProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack,
1172 };
1173
1174 typedef NS_ENUM(NSInteger, TestProtocolDatabaseExecuteNoOptionalParametersPrintColor) {
1175     TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan,
1176     TestProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta,
1177     TestProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow,
1178     TestProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack,
1179 };
1180
1181
1182 __attribute__((visibility ("default")))
1183 @interface TestProtocolDatabaseError : RWIProtocolJSONObject
1184 - (instancetype)initWithPayload:(NSDictionary<NSString *, id> *)payload;
1185 - (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
1186 - (instancetype)initWithMessage:(NSString *)message code:(int)code;
1187 /* required */ @property (nonatomic, copy) NSString *message;
1188 /* required */ @property (nonatomic, assign) int code;
1189 @end
1190
1191 @protocol TestProtocolDatabaseDomainHandler <NSObject>
1192 @required
1193 - (void)executeAllOptionalParametersWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, TestProtocolDatabaseError **sqlError, TestProtocolDatabasePrimaryColors *screenColor, NSArray/*<NSString>*/ **alternateColors, TestProtocolDatabaseExecuteAllOptionalParametersPrintColor *printColor))successCallback columnNames:(NSArray/*<NSString>*/ **)columnNames notes:(NSString **)notes timestamp:(double *)timestamp values:(RWIProtocolJSONObject **)values payload:(RWIProtocolJSONObject **)payload databaseId:(int *)databaseId sqlError:(TestProtocolDatabaseError **)sqlError screenColor:(TestProtocolDatabasePrimaryColors *)screenColor alternateColors:(NSArray/*<NSString>*/ **)alternateColors printColor:(TestProtocolDatabaseExecuteAllOptionalParametersPrintColor *)printColor;
1194 - (void)executeNoOptionalParametersWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, TestProtocolDatabaseError *sqlError, TestProtocolDatabasePrimaryColors screenColor, NSArray/*<NSString>*/ *alternateColors, TestProtocolDatabaseExecuteNoOptionalParametersPrintColor printColor))successCallback columnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload databaseId:(int)databaseId sqlError:(TestProtocolDatabaseError *)sqlError screenColor:(TestProtocolDatabasePrimaryColors)screenColor alternateColors:(NSArray/*<NSString>*/ *)alternateColors printColor:(TestProtocolDatabaseExecuteNoOptionalParametersPrintColor)printColor;
1195 @end
1196
1197
1198
1199
1200 ### End File: TestProtocol.h
1201
1202 ### Begin File: TestProtocolInternal.h
1203 /*
1204  * Copyright (C) 2013 Google Inc. All rights reserved.
1205  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
1206  * Copyright (C) 2014 University of Washington. All rights reserved.
1207  *
1208  * Redistribution and use in source and binary forms, with or without
1209  * modification, are permitted provided that the following conditions
1210  * are met:
1211  * 1. Redistributions of source code must retain the above copyright
1212  *    notice, this list of conditions and the following disclaimer.
1213  * 2. Redistributions in binary form must reproduce the above copyright
1214  *    notice, this list of conditions and the following disclaimer in the
1215  *    documentation and/or other materials provided with the distribution.
1216  *
1217  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1218  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1219  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1220  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1221  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1222  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1223  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1224  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1225  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1226  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1227  * THE POSSIBILITY OF SUCH DAMAGE.
1228  */
1229
1230 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
1231 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1232
1233 #import "TestProtocol.h"
1234 #import "TestProtocolJSONObjectPrivate.h"
1235 #import <JavaScriptCore/AugmentableInspectorController.h>
1236 #import <JavaScriptCore/InspectorValues.h>
1237
1238
1239
1240
1241 ### End File: TestProtocolInternal.h
1242
1243 ### Begin File: TestProtocolTypeConversions.h
1244 /*
1245  * Copyright (C) 2013 Google Inc. All rights reserved.
1246  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
1247  * Copyright (C) 2014 University of Washington. All rights reserved.
1248  *
1249  * Redistribution and use in source and binary forms, with or without
1250  * modification, are permitted provided that the following conditions
1251  * are met:
1252  * 1. Redistributions of source code must retain the above copyright
1253  *    notice, this list of conditions and the following disclaimer.
1254  * 2. Redistributions in binary form must reproduce the above copyright
1255  *    notice, this list of conditions and the following disclaimer in the
1256  *    documentation and/or other materials provided with the distribution.
1257  *
1258  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1259  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1260  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1261  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1262  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1263  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1264  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1265  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1266  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1267  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1268  * THE POSSIBILITY OF SUCH DAMAGE.
1269  */
1270
1271 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
1272 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1273
1274 #import "TestProtocol.h"
1275 #import <WebInspector/RWIProtocolArrayConversions.h>
1276
1277 namespace Inspector {
1278
1279 template<typename ObjCEnumType>
1280 ObjCEnumType fromProtocolString(const String& value);
1281
1282
1283 inline String toProtocolString(TestProtocolDatabasePrimaryColors value)
1284 {
1285     switch(value) {
1286     case TestProtocolDatabasePrimaryColorsRed:
1287         return ASCIILiteral("red");
1288     case TestProtocolDatabasePrimaryColorsGreen:
1289         return ASCIILiteral("green");
1290     case TestProtocolDatabasePrimaryColorsBlue:
1291         return ASCIILiteral("blue");
1292     }
1293 }
1294
1295 template<>
1296 inline TestProtocolDatabasePrimaryColors fromProtocolString(const String& value)
1297 {
1298     if (value == "red")
1299         return TestProtocolDatabasePrimaryColorsRed;
1300     if (value == "green")
1301         return TestProtocolDatabasePrimaryColorsGreen;
1302     if (value == "blue")
1303         return TestProtocolDatabasePrimaryColorsBlue;
1304     ASSERT_NOT_REACHED();
1305     return TestProtocolDatabasePrimaryColorsRed;
1306 }
1307
1308 inline String toProtocolString(TestProtocolDatabaseExecuteAllOptionalParametersPrintColor value)
1309 {
1310     switch(value) {
1311     case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan:
1312         return ASCIILiteral("cyan");
1313     case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta:
1314         return ASCIILiteral("magenta");
1315     case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow:
1316         return ASCIILiteral("yellow");
1317     case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack:
1318         return ASCIILiteral("black");
1319     }
1320 }
1321
1322 template<>
1323 inline TestProtocolDatabaseExecuteAllOptionalParametersPrintColor fromProtocolString(const String& value)
1324 {
1325     if (value == "cyan")
1326         return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan;
1327     if (value == "magenta")
1328         return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta;
1329     if (value == "yellow")
1330         return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow;
1331     if (value == "black")
1332         return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack;
1333     ASSERT_NOT_REACHED();
1334     return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan;
1335 }
1336
1337 inline String toProtocolString(TestProtocolDatabaseExecuteAllOptionalParametersPrintColor value)
1338 {
1339     switch(value) {
1340     case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan:
1341         return ASCIILiteral("cyan");
1342     case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta:
1343         return ASCIILiteral("magenta");
1344     case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow:
1345         return ASCIILiteral("yellow");
1346     case TestProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack:
1347         return ASCIILiteral("black");
1348     }
1349 }
1350
1351 template<>
1352 inline TestProtocolDatabaseExecuteAllOptionalParametersPrintColor fromProtocolString(const String& value)
1353 {
1354     if (value == "cyan")
1355         return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan;
1356     if (value == "magenta")
1357         return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta;
1358     if (value == "yellow")
1359         return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow;
1360     if (value == "black")
1361         return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack;
1362     ASSERT_NOT_REACHED();
1363     return TestProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan;
1364 }
1365
1366 inline String toProtocolString(TestProtocolDatabaseExecuteNoOptionalParametersPrintColor value)
1367 {
1368     switch(value) {
1369     case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan:
1370         return ASCIILiteral("cyan");
1371     case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta:
1372         return ASCIILiteral("magenta");
1373     case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow:
1374         return ASCIILiteral("yellow");
1375     case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack:
1376         return ASCIILiteral("black");
1377     }
1378 }
1379
1380 template<>
1381 inline TestProtocolDatabaseExecuteNoOptionalParametersPrintColor fromProtocolString(const String& value)
1382 {
1383     if (value == "cyan")
1384         return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan;
1385     if (value == "magenta")
1386         return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta;
1387     if (value == "yellow")
1388         return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow;
1389     if (value == "black")
1390         return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack;
1391     ASSERT_NOT_REACHED();
1392     return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan;
1393 }
1394
1395 inline String toProtocolString(TestProtocolDatabaseExecuteNoOptionalParametersPrintColor value)
1396 {
1397     switch(value) {
1398     case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan:
1399         return ASCIILiteral("cyan");
1400     case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta:
1401         return ASCIILiteral("magenta");
1402     case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow:
1403         return ASCIILiteral("yellow");
1404     case TestProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack:
1405         return ASCIILiteral("black");
1406     }
1407 }
1408
1409 template<>
1410 inline TestProtocolDatabaseExecuteNoOptionalParametersPrintColor fromProtocolString(const String& value)
1411 {
1412     if (value == "cyan")
1413         return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan;
1414     if (value == "magenta")
1415         return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta;
1416     if (value == "yellow")
1417         return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow;
1418     if (value == "black")
1419         return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack;
1420     ASSERT_NOT_REACHED();
1421     return TestProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan;
1422 }
1423
1424 } // namespace Inspector
1425
1426 ### End File: TestProtocolTypeConversions.h
1427
1428 ### Begin File: TestProtocolTypeConversions.mm
1429 /*
1430  * Copyright (C) 2013 Google Inc. All rights reserved.
1431  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
1432  * Copyright (C) 2014 University of Washington. All rights reserved.
1433  *
1434  * Redistribution and use in source and binary forms, with or without
1435  * modification, are permitted provided that the following conditions
1436  * are met:
1437  * 1. Redistributions of source code must retain the above copyright
1438  *    notice, this list of conditions and the following disclaimer.
1439  * 2. Redistributions in binary form must reproduce the above copyright
1440  *    notice, this list of conditions and the following disclaimer in the
1441  *    documentation and/or other materials provided with the distribution.
1442  *
1443  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1444  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1445  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1446  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1447  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1448  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1449  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1450  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1451  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1452  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1453  * THE POSSIBILITY OF SUCH DAMAGE.
1454  */
1455
1456 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
1457 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1458
1459 #import "config.h"
1460 #import "TestProtocolTypeConversions.h"
1461
1462 #import "TestProtocol.h"
1463 #import "TestProtocolTypeParser.h"
1464 #import <WebInspector/RWIProtocolJSONObjectPrivate.h>
1465
1466 using namespace Inspector;
1467
1468 @interface TestProtocolTypeConversions (DatabaseDomain)
1469
1470 + (void)_parseDatabaseId:(NSNumber **)outValue fromPayload:(id)payload;
1471 + (void)_parsePrimaryColors:(NSNumber **)outValue fromPayload:(id)payload;
1472 + (void)_parseColorList:(NSArray/*<NSString>*/ **)outValue fromPayload:(id)payload;
1473 + (void)_parseError:(TestProtocolDatabaseError **)outValue fromPayload:(id)payload;
1474
1475 @end
1476
1477 @implementation TestProtocolTypeConversions (DatabaseDomain)
1478
1479 + (void)_parseDatabaseId:(NSNumber **)outValue fromPayload:(id)payload
1480 {
1481     THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSNumber class]);
1482     *outValue = (NSNumber *)payload;
1483 }
1484
1485 + (void)_parsePrimaryColors:(NSNumber **)outValue fromPayload:(id)payload
1486 {
1487     THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSString class]);
1488     *outValue = @(Inspector::fromProtocolString<TestProtocolDatabasePrimaryColors>(payload));
1489 }
1490
1491 + (void)_parseColorList:(NSArray/*<NSString>*/ **)outValue fromPayload:(id)payload
1492 {
1493     THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSArray/*<NSString>*/ class]);
1494     *outValue = (NSArray/*<NSString>*/ *)payload;
1495 }
1496
1497 + (void)_parseError:(TestProtocolDatabaseError **)outValue fromPayload:(id)payload
1498 {
1499     THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
1500     *outValue = [[TestProtocolDatabaseError alloc] initWithPayload:payload];
1501 }
1502
1503 @end
1504
1505
1506 ### End File: TestProtocolTypeConversions.mm
1507
1508 ### Begin File: TestProtocolTypes.mm
1509 /*
1510  * Copyright (C) 2013 Google Inc. All rights reserved.
1511  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
1512  * Copyright (C) 2014 University of Washington. All rights reserved.
1513  *
1514  * Redistribution and use in source and binary forms, with or without
1515  * modification, are permitted provided that the following conditions
1516  * are met:
1517  * 1. Redistributions of source code must retain the above copyright
1518  *    notice, this list of conditions and the following disclaimer.
1519  * 2. Redistributions in binary form must reproduce the above copyright
1520  *    notice, this list of conditions and the following disclaimer in the
1521  *    documentation and/or other materials provided with the distribution.
1522  *
1523  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1524  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1525  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1526  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1527  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1528  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1529  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1530  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1531  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1532  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1533  * THE POSSIBILITY OF SUCH DAMAGE.
1534  */
1535
1536 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
1537 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1538
1539 #import "config.h"
1540 #import "TestProtocolInternal.h"
1541
1542 #import "TestProtocolTypeConversions.h"
1543 #import <WebInspector/RWIProtocolJSONObjectPrivate.h>
1544 #import <JavaScriptCore/InspectorValues.h>
1545 #import <wtf/Assertions.h>
1546
1547 using namespace Inspector;
1548
1549
1550 @implementation TestProtocolDatabaseError
1551
1552 - (instancetype)initWithPayload:(nonnull NSDictionary<NSString *, id> *)payload
1553 {
1554     if (!(self = [super init]))
1555         return nil;
1556
1557     THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"message"], @"message");
1558     self.message = payload[@"message"];
1559
1560     THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@"code"], @"code");
1561     self.code = [payload[@"code"] integerValue];
1562
1563     return self;
1564 }
1565 - (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
1566 {
1567     if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
1568         return nil;
1569
1570     return self;
1571 }
1572
1573 - (instancetype)initWithMessage:(NSString *)message code:(int)code
1574 {
1575     if (!(self = [super init]))
1576         return nil;
1577
1578     THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @"message");
1579
1580     self.message = message;
1581     self.code = code;
1582
1583     return self;
1584 }
1585
1586 - (void)setMessage:(NSString *)message
1587 {
1588     [super setString:message forKey:@"message"];
1589 }
1590
1591 - (NSString *)message
1592 {
1593     return [super stringForKey:@"message"];
1594 }
1595
1596 - (void)setCode:(int)code
1597 {
1598     [super setInteger:code forKey:@"code"];
1599 }
1600
1601 - (int)code
1602 {
1603     return [super integerForKey:@"code"];
1604 }
1605
1606 @end
1607
1608
1609 ### End File: TestProtocolTypes.mm