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