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