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