Web Inspector: Generate ObjC inspector protocol types and alternate dispatcher interfaces
[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().append(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         if (columnNames)
958             resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(*columnNames));
959         if (notes)
960             resultObject->setString(ASCIILiteral("notes"), *notes);
961         if (timestamp)
962             resultObject->setDouble(ASCIILiteral("timestamp"), *timestamp);
963         if (values)
964             resultObject->setObject(ASCIILiteral("values"), [*values toInspectorObject]);
965         if (payload)
966             resultObject->setValue(ASCIILiteral("payload"), [*payload toInspectorObject]);
967         if (databaseId)
968             resultObject->setInteger(ASCIILiteral("databaseId"), *databaseId);
969         if (sqlError)
970             resultObject->setObject(ASCIILiteral("sqlError"), [*sqlError toInspectorObject]);
971         if (screenColor)
972             resultObject->setString(ASCIILiteral("screenColor"), toProtocolString(*screenColor));
973         if (printColor)
974             resultObject->setString(ASCIILiteral("printColor"), toProtocolString(*printColor));
975         backendDispatcher()->sendResponse(callId, resultObject.release(), String());
976     };
977
978     NSArray/*<NSString>*/ *o_in_columnNames;
979     if (in_columnNames)
980         o_in_columnNames = objcStringArray(*in_columnNames);
981     NSString *o_in_notes;
982     if (in_notes)
983         o_in_notes = *in_notes;
984     double o_in_timestamp;
985     if (in_timestamp)
986         o_in_timestamp = *in_timestamp;
987     RWIProtocolJSONObject *o_in_values;
988     if (in_values)
989         o_in_values = [[[RWIProtocolJSONObject alloc] initWithInspectorObject:*in_values] autorelease];
990     RWIProtocolJSONObject *o_in_payload;
991     if (in_payload)
992         o_in_payload = [[[RWIProtocolJSONObject alloc] initWithInspectorObject:*in_payload] autorelease];
993     NSInteger o_in_databaseId;
994     if (in_databaseId)
995         o_in_databaseId = *in_databaseId;
996     RWIProtocolDatabaseError *o_in_sqlError;
997     if (in_sqlError)
998         o_in_sqlError = [[[RWIProtocolDatabaseError alloc] initWithInspectorObject:*in_sqlError] autorelease];
999     RWIProtocolDatabasePrimaryColors o_in_screenColor;
1000     if (in_screenColor)
1001         o_in_screenColor = fromProtocolString<RWIProtocolDatabasePrimaryColors>(*in_screenColor);
1002     RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor o_in_printColor;
1003     if (in_printColor)
1004         o_in_printColor = fromProtocolString<RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor>(*in_printColor);
1005
1006     [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)];
1007 }
1008
1009 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)
1010 {
1011     id errorCallback = ^(NSString *error) {
1012         backendDispatcher()->sendResponse(callId, InspectorObject::create(), error);
1013     };
1014
1015     id successCallback = ^(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, NSInteger databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor printColor) {
1016         RefPtr<InspectorObject> resultObject = InspectorObject::create();
1017         resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(columnNames));
1018         resultObject->setString(ASCIILiteral("notes"), notes);
1019         resultObject->setDouble(ASCIILiteral("timestamp"), timestamp);
1020         resultObject->setObject(ASCIILiteral("values"), [values toInspectorObject]);
1021         resultObject->setValue(ASCIILiteral("payload"), [payload toInspectorObject]);
1022         resultObject->setInteger(ASCIILiteral("databaseId"), databaseId);
1023         resultObject->setObject(ASCIILiteral("sqlError"), [sqlError toInspectorObject]);
1024         resultObject->setString(ASCIILiteral("screenColor"), toProtocolString(screenColor));
1025         resultObject->setString(ASCIILiteral("printColor"), toProtocolString(printColor));
1026         backendDispatcher()->sendResponse(callId, resultObject.release(), String());
1027     };
1028
1029     NSArray/*<NSString>*/ *o_in_columnNames = objcStringArray(in_columnNames);
1030     NSString *o_in_notes = in_notes;
1031     double o_in_timestamp = in_timestamp;
1032     RWIProtocolJSONObject *o_in_values = [[[RWIProtocolJSONObject alloc] initWithInspectorObject:in_values] autorelease];
1033     RWIProtocolJSONObject *o_in_payload = [[[RWIProtocolJSONObject alloc] initWithInspectorObject:in_payload] autorelease];
1034     NSInteger o_in_databaseId = in_databaseId;
1035     RWIProtocolDatabaseError *o_in_sqlError = [[[RWIProtocolDatabaseError alloc] initWithInspectorObject:in_sqlError] autorelease];
1036     RWIProtocolDatabasePrimaryColors o_in_screenColor = fromProtocolString<RWIProtocolDatabasePrimaryColors>(in_screenColor);
1037     RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor o_in_printColor = fromProtocolString<RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor>(in_printColor);
1038
1039     [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];
1040 }
1041
1042
1043 } // namespace Inspector
1044
1045 ### End File: RWIProtocolBackendDispatchers.mm
1046
1047 ### Begin File: RWIProtocolEnumConversionHelpers.h
1048 /*
1049  * Copyright (C) 2013 Google Inc. All rights reserved.
1050  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
1051  * Copyright (C) 2014 University of Washington. All rights reserved.
1052  *
1053  * Redistribution and use in source and binary forms, with or without
1054  * modification, are permitted provided that the following conditions
1055  * are met:
1056  * 1. Redistributions of source code must retain the above copyright
1057  *    notice, this list of conditions and the following disclaimer.
1058  * 2. Redistributions in binary form must reproduce the above copyright
1059  *    notice, this list of conditions and the following disclaimer in the
1060  *    documentation and/or other materials provided with the distribution.
1061  *
1062  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1063  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1064  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1065  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1066  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1067  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1068  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1069  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1070  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1071  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1072  * THE POSSIBILITY OF SUCH DAMAGE.
1073  */
1074
1075 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
1076 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1077
1078 #import "RWIProtocolArrayConversionHelpers.h"
1079
1080 namespace Inspector {
1081
1082 template<typename ObjCEnumType>
1083 ObjCEnumType fromProtocolString(String value);
1084
1085
1086 inline String toProtocolString(RWIProtocolDatabasePrimaryColors value)
1087 {
1088     switch(value) {
1089     case RWIProtocolDatabasePrimaryColorsRed:
1090         return ASCIILiteral("red");
1091     case RWIProtocolDatabasePrimaryColorsGreen:
1092         return ASCIILiteral("green");
1093     case RWIProtocolDatabasePrimaryColorsBlue:
1094         return ASCIILiteral("blue");
1095     }
1096 }
1097
1098 template<>
1099 inline RWIProtocolDatabasePrimaryColors fromProtocolString(String value)
1100 {
1101     if (value == "red")
1102         return RWIProtocolDatabasePrimaryColorsRed;
1103     if (value == "green")
1104         return RWIProtocolDatabasePrimaryColorsGreen;
1105     if (value == "blue")
1106         return RWIProtocolDatabasePrimaryColorsBlue;
1107     ASSERT_NOT_REACHED();
1108     return RWIProtocolDatabasePrimaryColorsRed;
1109 }
1110
1111 inline String toProtocolString(RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor value)
1112 {
1113     switch(value) {
1114     case RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan:
1115         return ASCIILiteral("cyan");
1116     case RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta:
1117         return ASCIILiteral("magenta");
1118     case RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow:
1119         return ASCIILiteral("yellow");
1120     case RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack:
1121         return ASCIILiteral("black");
1122     }
1123 }
1124
1125 template<>
1126 inline RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor fromProtocolString(String value)
1127 {
1128     if (value == "cyan")
1129         return RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan;
1130     if (value == "magenta")
1131         return RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta;
1132     if (value == "yellow")
1133         return RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow;
1134     if (value == "black")
1135         return RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack;
1136     ASSERT_NOT_REACHED();
1137     return RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan;
1138 }
1139
1140 inline String toProtocolString(RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor value)
1141 {
1142     switch(value) {
1143     case RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan:
1144         return ASCIILiteral("cyan");
1145     case RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta:
1146         return ASCIILiteral("magenta");
1147     case RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow:
1148         return ASCIILiteral("yellow");
1149     case RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack:
1150         return ASCIILiteral("black");
1151     }
1152 }
1153
1154 template<>
1155 inline RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor fromProtocolString(String value)
1156 {
1157     if (value == "cyan")
1158         return RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan;
1159     if (value == "magenta")
1160         return RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta;
1161     if (value == "yellow")
1162         return RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow;
1163     if (value == "black")
1164         return RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack;
1165     ASSERT_NOT_REACHED();
1166     return RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan;
1167 }
1168
1169 inline String toProtocolString(RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor value)
1170 {
1171     switch(value) {
1172     case RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan:
1173         return ASCIILiteral("cyan");
1174     case RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta:
1175         return ASCIILiteral("magenta");
1176     case RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow:
1177         return ASCIILiteral("yellow");
1178     case RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack:
1179         return ASCIILiteral("black");
1180     }
1181 }
1182
1183 template<>
1184 inline RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor fromProtocolString(String value)
1185 {
1186     if (value == "cyan")
1187         return RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan;
1188     if (value == "magenta")
1189         return RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta;
1190     if (value == "yellow")
1191         return RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow;
1192     if (value == "black")
1193         return RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack;
1194     ASSERT_NOT_REACHED();
1195     return RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan;
1196 }
1197
1198 inline String toProtocolString(RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor value)
1199 {
1200     switch(value) {
1201     case RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan:
1202         return ASCIILiteral("cyan");
1203     case RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta:
1204         return ASCIILiteral("magenta");
1205     case RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow:
1206         return ASCIILiteral("yellow");
1207     case RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack:
1208         return ASCIILiteral("black");
1209     }
1210 }
1211
1212 template<>
1213 inline RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor fromProtocolString(String value)
1214 {
1215     if (value == "cyan")
1216         return RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan;
1217     if (value == "magenta")
1218         return RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta;
1219     if (value == "yellow")
1220         return RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow;
1221     if (value == "black")
1222         return RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack;
1223     ASSERT_NOT_REACHED();
1224     return RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan;
1225 }
1226
1227 } // namespace Inspector
1228
1229 ### End File: RWIProtocolEnumConversionHelpers.h
1230
1231 ### Begin File: RWIProtocolEventDispatchers.mm
1232 /*
1233  * Copyright (C) 2013 Google Inc. All rights reserved.
1234  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
1235  * Copyright (C) 2014 University of Washington. All rights reserved.
1236  *
1237  * Redistribution and use in source and binary forms, with or without
1238  * modification, are permitted provided that the following conditions
1239  * are met:
1240  * 1. Redistributions of source code must retain the above copyright
1241  *    notice, this list of conditions and the following disclaimer.
1242  * 2. Redistributions in binary form must reproduce the above copyright
1243  *    notice, this list of conditions and the following disclaimer in the
1244  *    documentation and/or other materials provided with the distribution.
1245  *
1246  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1247  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1248  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1249  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1250  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1251  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1252  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1253  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1254  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1255  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1256  * THE POSSIBILITY OF SUCH DAMAGE.
1257  */
1258
1259 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
1260 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1261
1262 #import "config.h"
1263 #import "RWIProtocolInternal.h"
1264
1265 #import "RWIProtocolEnumConversionHelpers.h"
1266 #import <JavaScriptCore/InspectorFrontendChannel.h>
1267 #import <JavaScriptCore/InspectorValues.h>
1268
1269 using namespace Inspector;
1270
1271
1272
1273
1274 ### End File: RWIProtocolEventDispatchers.mm
1275
1276 ### Begin File: RWIProtocol.h
1277 /*
1278  * Copyright (C) 2013 Google Inc. All rights reserved.
1279  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
1280  * Copyright (C) 2014 University of Washington. All rights reserved.
1281  *
1282  * Redistribution and use in source and binary forms, with or without
1283  * modification, are permitted provided that the following conditions
1284  * are met:
1285  * 1. Redistributions of source code must retain the above copyright
1286  *    notice, this list of conditions and the following disclaimer.
1287  * 2. Redistributions in binary form must reproduce the above copyright
1288  *    notice, this list of conditions and the following disclaimer in the
1289  *    documentation and/or other materials provided with the distribution.
1290  *
1291  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1292  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1293  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1294  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1295  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1296  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1297  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1298  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1299  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1300  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1301  * THE POSSIBILITY OF SUCH DAMAGE.
1302  */
1303
1304 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
1305 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1306
1307 #import <Foundation/Foundation.h>
1308
1309 #import <WebInspector/RWIProtocolJSONObject.h>
1310
1311
1312 @class RWIProtocolDatabaseError;
1313
1314
1315 typedef NS_ENUM(NSInteger, RWIProtocolDatabasePrimaryColors) {
1316     RWIProtocolDatabasePrimaryColorsRed,
1317     RWIProtocolDatabasePrimaryColorsGreen,
1318     RWIProtocolDatabasePrimaryColorsBlue,
1319 };
1320
1321 typedef NS_ENUM(NSInteger, RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor) {
1322     RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan,
1323     RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta,
1324     RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow,
1325     RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack,
1326 };
1327
1328 typedef NS_ENUM(NSInteger, RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor) {
1329     RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorCyan,
1330     RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorMagenta,
1331     RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorYellow,
1332     RWIProtocolDatabaseExecuteAllOptionalParametersPrintColorBlack,
1333 };
1334
1335 typedef NS_ENUM(NSInteger, RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor) {
1336     RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan,
1337     RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta,
1338     RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow,
1339     RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack,
1340 };
1341
1342 typedef NS_ENUM(NSInteger, RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor) {
1343     RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorCyan,
1344     RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorMagenta,
1345     RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorYellow,
1346     RWIProtocolDatabaseExecuteNoOptionalParametersPrintColorBlack,
1347 };
1348
1349
1350 @interface RWIProtocolDatabaseError : RWIProtocolJSONObject
1351 - (instancetype)initWithMessage:(NSString *)message code:(NSInteger)code;
1352 /* required */ @property (nonatomic, copy) NSString *message;
1353 /* required */ @property (nonatomic, assign) NSInteger code;
1354 @end
1355
1356 @protocol RWIProtocolDatabaseDomainHandler <NSObject>
1357 @required
1358 - (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;
1359 - (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;
1360 @end
1361
1362
1363
1364
1365 ### End File: RWIProtocol.h
1366
1367 ### Begin File: RWIProtocolTypes.mm
1368 /*
1369  * Copyright (C) 2013 Google Inc. All rights reserved.
1370  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
1371  * Copyright (C) 2014 University of Washington. All rights reserved.
1372  *
1373  * Redistribution and use in source and binary forms, with or without
1374  * modification, are permitted provided that the following conditions
1375  * are met:
1376  * 1. Redistributions of source code must retain the above copyright
1377  *    notice, this list of conditions and the following disclaimer.
1378  * 2. Redistributions in binary form must reproduce the above copyright
1379  *    notice, this list of conditions and the following disclaimer in the
1380  *    documentation and/or other materials provided with the distribution.
1381  *
1382  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1383  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1384  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1385  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1386  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1387  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1388  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1389  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1390  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1391  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1392  * THE POSSIBILITY OF SUCH DAMAGE.
1393  */
1394
1395 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
1396 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1397
1398 #import "config.h"
1399 #import "RWIProtocolInternal.h"
1400
1401 #import "RWIProtocolEnumConversionHelpers.h"
1402 #import <JavaScriptCore/InspectorValues.h>
1403 #import <wtf/Assertions.h>
1404 #import <wtf/PassRefPtr.h>
1405
1406 using namespace Inspector;
1407
1408
1409 @implementation RWIProtocolDatabaseError
1410
1411 - (instancetype)initWithMessage:(NSString *)message code:(NSInteger)code;
1412 {
1413     self = [super init];
1414     if (!self)
1415         return nil;
1416
1417     self.message = message;
1418     self.code = code;
1419
1420     return self;
1421 }
1422
1423 - (void)setMessage:(NSString *)message
1424 {
1425     [super setString:message forKey:@"message"];
1426 }
1427
1428 - (NSString *)message
1429 {
1430     return [super stringForKey:@"message"];
1431 }
1432
1433 - (void)setCode:(NSInteger)code
1434 {
1435     [super setInteger:code forKey:@"code"];
1436 }
1437
1438 - (NSInteger)code
1439 {
1440     return [super integerForKey:@"code"];
1441 }
1442
1443 @end
1444
1445
1446 ### End File: RWIProtocolTypes.mm
1447
1448 ### Begin File: RWIProtocolInternal.h
1449 /*
1450  * Copyright (C) 2013 Google Inc. All rights reserved.
1451  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
1452  * Copyright (C) 2014 University of Washington. All rights reserved.
1453  *
1454  * Redistribution and use in source and binary forms, with or without
1455  * modification, are permitted provided that the following conditions
1456  * are met:
1457  * 1. Redistributions of source code must retain the above copyright
1458  *    notice, this list of conditions and the following disclaimer.
1459  * 2. Redistributions in binary form must reproduce the above copyright
1460  *    notice, this list of conditions and the following disclaimer in the
1461  *    documentation and/or other materials provided with the distribution.
1462  *
1463  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1464  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1465  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1466  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1467  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1468  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1469  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1470  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1471  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1472  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1473  * THE POSSIBILITY OF SUCH DAMAGE.
1474  */
1475
1476 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
1477 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1478
1479 #import "RWIProtocol.h"
1480 #import "RWIProtocolJSONObjectInternal.h"
1481 #import <JavaScriptCore/AugmentableInspectorController.h>
1482 #import <JavaScriptCore/InspectorValues.h>
1483
1484
1485
1486
1487 ### End File: RWIProtocolInternal.h