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