Web Inspector: Generate all Inspector domains together in JavaScriptCore
[WebKit-https.git] / Source / JavaScriptCore / inspector / scripts / tests / expected / commands-with-async-attribute.json-result
1 ### Begin File: InspectorBackendCommands.js
2 /*
3  * Copyright (C) 2013 Google Inc. All rights reserved.
4  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
5  * Copyright (C) 2014 University of Washington. All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
17  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
18  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26  * THE POSSIBILITY OF SUCH DAMAGE.
27  */
28
29 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
30 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
31
32 // Database.
33 InspectorBackend.registerDatabaseDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "Database");
34 InspectorBackend.registerEnum("Database.PrimaryColors", {Red: "red", Green: "green", Blue: "blue"});
35 InspectorBackend.registerCommand("Database.executeSQLSyncOptionalReturnValues", [{"name": "databaseId", "type": "number", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "printColor"]);
36 InspectorBackend.registerCommand("Database.executeSQLAsyncOptionalReturnValues", [{"name": "databaseId", "type": "number", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "printColor"]);
37 InspectorBackend.registerCommand("Database.executeSQLSync", [{"name": "databaseId", "type": "number", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "printColor"]);
38 InspectorBackend.registerCommand("Database.executeSQLAsync", [{"name": "databaseId", "type": "number", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "printColor"]);
39 ### End File: InspectorBackendCommands.js
40
41 ### Begin File: InspectorBackendDispatchers.h
42 /*
43  * Copyright (C) 2013 Google Inc. All rights reserved.
44  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
45  * Copyright (C) 2014 University of Washington. All rights reserved.
46  *
47  * Redistribution and use in source and binary forms, with or without
48  * modification, are permitted provided that the following conditions
49  * are met:
50  * 1. Redistributions of source code must retain the above copyright
51  *    notice, this list of conditions and the following disclaimer.
52  * 2. Redistributions in binary form must reproduce the above copyright
53  *    notice, this list of conditions and the following disclaimer in the
54  *    documentation and/or other materials provided with the distribution.
55  *
56  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
57  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
58  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
59  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
60  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
61  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
62  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
63  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
64  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
65  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
66  * THE POSSIBILITY OF SUCH DAMAGE.
67  */
68
69 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
70 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
71
72 #ifndef InspectorBackendDispatchers_h
73 #define InspectorBackendDispatchers_h
74
75 #if ENABLE(INSPECTOR)
76
77 #include "InspectorProtocolObjects.h"
78 #include <inspector/InspectorBackendDispatcher.h>
79 #include <wtf/PassRefPtr.h>
80 #include <wtf/text/WTFString.h>
81
82 namespace Inspector {
83
84 typedef String ErrorString;
85
86 class InspectorDatabaseBackendDispatcherHandler {
87 public:
88     // Named after parameter 'screenColor' while generating command/event executeSQLSyncOptionalReturnValues.
89     enum class ScreenColor {
90         Red = 0,
91         Green = 1,
92         Blue = 2,
93     }; // enum class ScreenColor
94     // Named after parameter 'printColor' while generating command/event executeSQLSyncOptionalReturnValues.
95     enum class PrintColor {
96         Cyan = 3,
97         Magenta = 4,
98         Yellow = 5,
99         Black = 6,
100     }; // enum class PrintColor
101     virtual void executeSQLSyncOptionalReturnValues(ErrorString&, int in_databaseId, const String& in_query, 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;
102     class ExecuteSQLAsyncOptionalReturnValuesCallback : public Inspector::InspectorBackendDispatcher::CallbackBase {
103     public:
104         ExecuteSQLAsyncOptionalReturnValuesCallback(PassRefPtr<Inspector::InspectorBackendDispatcher>, int id);
105         void sendSuccess(PassRefPtr<Inspector::Protocol::Array<String>> columnNames, Inspector::Protocol::OptOutput<String>* notes, Inspector::Protocol::OptOutput<double>* timestamp, Inspector::Protocol::OptOutput<Inspector::InspectorObject>* values, Inspector::Protocol::OptOutput<Inspector::InspectorValue>* payload, Inspector::Protocol::OptOutput<int>* databaseId, PassRefPtr<Inspector::Protocol::Database::Error> sqlError, Inspector::Protocol::OptOutput<String>* screenColor, Inspector::Protocol::OptOutput<String>* printColor);
106     };
107     virtual void executeSQLAsyncOptionalReturnValues(ErrorString&, int in_databaseId, const String& in_query, PassRefPtr<ExecuteSQLAsyncOptionalReturnValuesCallback> callback) = 0;
108     virtual void executeSQLSync(ErrorString&, int in_databaseId, const String& in_query, 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;
109     class ExecuteSQLAsyncCallback : public Inspector::InspectorBackendDispatcher::CallbackBase {
110     public:
111         ExecuteSQLAsyncCallback(PassRefPtr<Inspector::InspectorBackendDispatcher>, int id);
112         void sendSuccess(PassRefPtr<Inspector::Protocol::Array<String>> columnNames, const String& notes, double timestamp, Inspector::InspectorObject values, Inspector::InspectorValue payload, int databaseId, PassRefPtr<Inspector::Protocol::Database::Error> sqlError, const String& screenColor, const String& printColor);
113     };
114     virtual void executeSQLAsync(ErrorString&, int in_databaseId, const String& in_query, PassRefPtr<ExecuteSQLAsyncCallback> callback) = 0;
115 protected:
116     virtual ~InspectorDatabaseBackendDispatcherHandler();
117 };
118
119 class InspectorDatabaseBackendDispatcher final : public Inspector::InspectorSupplementalBackendDispatcher {
120 public:
121     static PassRefPtr<InspectorDatabaseBackendDispatcher> create(Inspector::InspectorBackendDispatcher*, InspectorDatabaseBackendDispatcherHandler*);
122     virtual void dispatch(long callId, const String& method, PassRefPtr<Inspector::InspectorObject> message) override;
123 private:
124     void executeSQLSyncOptionalReturnValues(long callId, const Inspector::InspectorObject& message);
125     void executeSQLAsyncOptionalReturnValues(long callId, const Inspector::InspectorObject& message);
126     void executeSQLSync(long callId, const Inspector::InspectorObject& message);
127     void executeSQLAsync(long callId, const Inspector::InspectorObject& message);
128 private:
129     InspectorDatabaseBackendDispatcher(Inspector::InspectorBackendDispatcher*, InspectorDatabaseBackendDispatcherHandler*);
130     InspectorDatabaseBackendDispatcherHandler* m_agent;
131 };
132
133 } // namespace Inspector
134
135 #endif // ENABLE(INSPECTOR)
136
137 #endif // !defined(InspectorBackendDispatchers_h)
138 ### End File: InspectorBackendDispatchers.h
139
140 ### Begin File: InspectorBackendDispatchers.cpp
141 /*
142  * Copyright (C) 2013 Google Inc. All rights reserved.
143  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
144  * Copyright (C) 2014 University of Washington. All rights reserved.
145  *
146  * Redistribution and use in source and binary forms, with or without
147  * modification, are permitted provided that the following conditions
148  * are met:
149  * 1. Redistributions of source code must retain the above copyright
150  *    notice, this list of conditions and the following disclaimer.
151  * 2. Redistributions in binary form must reproduce the above copyright
152  *    notice, this list of conditions and the following disclaimer in the
153  *    documentation and/or other materials provided with the distribution.
154  *
155  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
156  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
157  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
158  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
159  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
160  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
161  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
162  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
163  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
164  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
165  * THE POSSIBILITY OF SUCH DAMAGE.
166  */
167
168 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
169 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
170
171 #include "config.h"
172 #include "InspectorBackendDispatchers.h"
173
174 #if ENABLE(INSPECTOR)
175
176 #include <inspector/InspectorFrontendChannel.h>
177 #include <inspector/InspectorValues.h>
178 #include <wtf/text/CString.h>
179
180 namespace Inspector {
181
182 InspectorDatabaseBackendDispatcherHandler::~InspectorDatabaseBackendDispatcherHandler() { }
183
184 PassRefPtr<InspectorDatabaseBackendDispatcher> InspectorDatabaseBackendDispatcher::create(InspectorBackendDispatcher* backendDispatcher, InspectorDatabaseBackendDispatcherHandler* agent)
185 {
186     return adoptRef(new InspectorDatabaseBackendDispatcher(backendDispatcher, agent));
187 }
188
189 InspectorDatabaseBackendDispatcher::InspectorDatabaseBackendDispatcher(InspectorBackendDispatcher* backendDispatcher, InspectorDatabaseBackendDispatcherHandler* agent)
190     : InspectorSupplementalBackendDispatcher(backendDispatcher)
191     , m_agent(agent)
192 {
193     m_backendDispatcher->registerDispatcherForDomain(ASCIILiteral("Database"), this);
194 }
195
196 void InspectorDatabaseBackendDispatcher::dispatch(long callId, const String& method, PassRefPtr<InspectorObject> message)
197 {
198     Ref<InspectorDatabaseBackendDispatcher> protect(*this);
199
200     if (method == "executeSQLSyncOptionalReturnValues")
201         executeSQLSyncOptionalReturnValues(callId, *message.get());
202     else if (method == "executeSQLAsyncOptionalReturnValues")
203         executeSQLAsyncOptionalReturnValues(callId, *message.get());
204     else if (method == "executeSQLSync")
205         executeSQLSync(callId, *message.get());
206     else if (method == "executeSQLAsync")
207         executeSQLAsync(callId, *message.get());
208     else
209         m_backendDispatcher->reportProtocolError(&callId, InspectorBackendDispatcher::MethodNotFound, makeString('\'', "Database", '.', method, "' was not found"));
210 }
211
212 void InspectorDatabaseBackendDispatcher::executeSQLSyncOptionalReturnValues(long callId, const InspectorObject& message)
213 {
214     RefPtr<InspectorArray> protocolErrors = InspectorArray::create();
215     RefPtr<InspectorObject> paramsContainer = message.getObject(ASCIILiteral("params"));
216     InspectorObject* paramsContainerPtr = paramsContainer.get();
217     InspectorArray* protocolErrorsPtr = protocolErrors.get();
218     int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral("databaseId"), nullptr, protocolErrorsPtr);
219     String in_query = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral("query"), nullptr, protocolErrorsPtr);
220     if (protocolErrors->length()) {
221         String errorMessage = String::format("Some arguments of method '%s' can't be processed", "Database.executeSQLSyncOptionalReturnValues");
222         m_backendDispatcher->reportProtocolError(&callId, InspectorBackendDispatcher::InvalidParams, errorMessage, protocolErrors.release());
223         return;
224     }
225
226     ErrorString error;
227     RefPtr<InspectorObject> result = InspectorObject::create();
228     RefPtr<Inspector::Protocol::Array<String>> out_columnNames;
229     Inspector::Protocol::OptOutput<String> out_notes;
230     Inspector::Protocol::OptOutput<double> out_timestamp;
231     Inspector::Protocol::OptOutput<Inspector::InspectorObject> out_values;
232     Inspector::Protocol::OptOutput<Inspector::InspectorValue> out_payload;
233     Inspector::Protocol::OptOutput<Inspector::Protocol::Database::DatabaseId> out_databaseId;
234     RefPtr<Inspector::Protocol::Database::Error> out_sqlError;
235     Inspector::Protocol::Database::PrimaryColors out_screenColor;
236     InspectorDatabaseBackendDispatcherHandler::PrintColor out_printColor;
237     m_agent->executeSQLSyncOptionalReturnValues(error, in_databaseId, in_query, out_columnNames, &out_notes, &out_timestamp, out_values, &out_payload, &out_databaseId, out_sqlError, &out_screenColor, &out_printColor);
238
239     if (!error.length()) {
240         if (out_columnNames)
241             result->setArray(ASCIILiteral("columnNames"), out_columnNames);
242         if (out_notes.isAssigned())
243             result->setString(ASCIILiteral("notes"), out_notes.getValue());
244         if (out_timestamp.isAssigned())
245             result->setDouble(ASCIILiteral("timestamp"), out_timestamp.getValue());
246         if (out_values.isAssigned())
247             result->setObject(ASCIILiteral("values"), out_values.getValue());
248         if (out_payload.isAssigned())
249             result->setValue(ASCIILiteral("payload"), out_payload.getValue());
250         if (out_databaseId.isAssigned())
251             result->setInteger(ASCIILiteral("databaseId"), out_databaseId.getValue());
252         if (out_sqlError)
253             result->setObject(ASCIILiteral("sqlError"), out_sqlError);
254         if (out_screenColor.isAssigned())
255             result->setString(ASCIILiteral("screenColor"), out_screenColor.getValue());
256         if (out_printColor.isAssigned())
257             result->setString(ASCIILiteral("printColor"), out_printColor.getValue());
258     }
259     m_backendDispatcher->sendResponse(callId, result.release(), error);
260 }
261
262 InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback::ExecuteSQLAsyncOptionalReturnValuesCallback(PassRefPtr<InspectorBackendDispatcher> backendDispatcher, int id) : Inspector::InspectorBackendDispatcher::CallbackBase(backendDispatcher, id) { }
263
264 void InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback::sendSuccess(PassRefPtr<Inspector::Protocol::Array<String>> columnNames, Inspector::Protocol::OptOutput<String>* notes, Inspector::Protocol::OptOutput<double>* timestamp, Inspector::Protocol::OptOutput<Inspector::InspectorObject>* values, Inspector::Protocol::OptOutput<Inspector::InspectorValue>* payload, Inspector::Protocol::OptOutput<int>* databaseId, PassRefPtr<Inspector::Protocol::Database::Error> sqlError, Inspector::Protocol::OptOutput<String>* screenColor, Inspector::Protocol::OptOutput<String>* printColor)
265 {
266     RefPtr<InspectorObject> jsonMessage = InspectorObject::create();
267     if (columnNames)
268         jsonMessage->setArray(ASCIILiteral("columnNames"), columnNames);
269     if (notes.isAssigned())
270         jsonMessage->setString(ASCIILiteral("notes"), notes.getValue());
271     if (timestamp.isAssigned())
272         jsonMessage->setDouble(ASCIILiteral("timestamp"), timestamp.getValue());
273     if (values.isAssigned())
274         jsonMessage->setObject(ASCIILiteral("values"), values.getValue());
275     if (payload.isAssigned())
276         jsonMessage->setValue(ASCIILiteral("payload"), payload.getValue());
277     if (databaseId.isAssigned())
278         jsonMessage->setInteger(ASCIILiteral("databaseId"), databaseId.getValue());
279     if (sqlError)
280         jsonMessage->setObject(ASCIILiteral("sqlError"), sqlError);
281     if (screenColor.isAssigned())
282         jsonMessage->setString(ASCIILiteral("screenColor"), screenColor.getValue());
283     if (printColor.isAssigned())
284         jsonMessage->setString(ASCIILiteral("printColor"), printColor.getValue());
285     sendIfActive(jsonMessage, ErrorString());
286 }
287
288 void InspectorDatabaseBackendDispatcher::executeSQLAsyncOptionalReturnValues(long callId, const InspectorObject& message)
289 {
290     RefPtr<InspectorArray> protocolErrors = InspectorArray::create();
291     RefPtr<InspectorObject> paramsContainer = message.getObject(ASCIILiteral("params"));
292     InspectorObject* paramsContainerPtr = paramsContainer.get();
293     InspectorArray* protocolErrorsPtr = protocolErrors.get();
294     int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral("databaseId"), nullptr, protocolErrorsPtr);
295     String in_query = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral("query"), nullptr, protocolErrorsPtr);
296     if (protocolErrors->length()) {
297         String errorMessage = String::format("Some arguments of method '%s' can't be processed", "Database.executeSQLAsyncOptionalReturnValues");
298         m_backendDispatcher->reportProtocolError(&callId, InspectorBackendDispatcher::InvalidParams, errorMessage, protocolErrors.release());
299         return;
300     }
301
302     ErrorString error;
303     RefPtr<InspectorObject> result = InspectorObject::create();
304     RefPtr<InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback> callback = adoptRef(new InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback(m_backendDispatcher,callId));
305     m_agent->executeSQLAsyncOptionalReturnValues(error, in_databaseId, in_query, callback);
306
307     if (error.length()) {
308         callback->disable();
309         m_backendDispatcher->reportProtocolError(&callId, Inspector::InspectorBackendDispatcher::ServerError, error);
310         return;
311     }
312 }
313
314 void InspectorDatabaseBackendDispatcher::executeSQLSync(long callId, const InspectorObject& message)
315 {
316     RefPtr<InspectorArray> protocolErrors = InspectorArray::create();
317     RefPtr<InspectorObject> paramsContainer = message.getObject(ASCIILiteral("params"));
318     InspectorObject* paramsContainerPtr = paramsContainer.get();
319     InspectorArray* protocolErrorsPtr = protocolErrors.get();
320     int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral("databaseId"), nullptr, protocolErrorsPtr);
321     String in_query = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral("query"), nullptr, protocolErrorsPtr);
322     if (protocolErrors->length()) {
323         String errorMessage = String::format("Some arguments of method '%s' can't be processed", "Database.executeSQLSync");
324         m_backendDispatcher->reportProtocolError(&callId, InspectorBackendDispatcher::InvalidParams, errorMessage, protocolErrors.release());
325         return;
326     }
327
328     ErrorString error;
329     RefPtr<InspectorObject> result = InspectorObject::create();
330     RefPtr<Inspector::Protocol::Array<String>> out_columnNames;
331     String out_notes;
332     double out_timestamp;
333     Inspector::InspectorObject out_values;
334     Inspector::InspectorValue out_payload;
335     Inspector::Protocol::Database::DatabaseId out_databaseId;
336     RefPtr<Inspector::Protocol::Database::Error> out_sqlError;
337     Inspector::Protocol::Database::PrimaryColors out_screenColor;
338     InspectorDatabaseBackendDispatcherHandler::PrintColor out_printColor;
339     m_agent->executeSQLSync(error, in_databaseId, in_query, out_columnNames, &out_notes, &out_timestamp, out_values, &out_payload, &out_databaseId, out_sqlError, &out_screenColor, &out_printColor);
340
341     if (!error.length()) {
342         result->setArray(ASCIILiteral("columnNames"), out_columnNames);
343         result->setString(ASCIILiteral("notes"), out_notes);
344         result->setDouble(ASCIILiteral("timestamp"), out_timestamp);
345         result->setObject(ASCIILiteral("values"), out_values);
346         result->setValue(ASCIILiteral("payload"), out_payload);
347         result->setInteger(ASCIILiteral("databaseId"), out_databaseId);
348         result->setObject(ASCIILiteral("sqlError"), out_sqlError);
349         result->setString(ASCIILiteral("screenColor"), Inspector::Protocol::getEnumConstantValue(out_screenColor));
350         result->setString(ASCIILiteral("printColor"), Inspector::Protocol::getEnumConstantValue(out_printColor));
351     }
352     m_backendDispatcher->sendResponse(callId, result.release(), error);
353 }
354
355 InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback::ExecuteSQLAsyncCallback(PassRefPtr<InspectorBackendDispatcher> backendDispatcher, int id) : Inspector::InspectorBackendDispatcher::CallbackBase(backendDispatcher, id) { }
356
357 void InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback::sendSuccess(PassRefPtr<Inspector::Protocol::Array<String>> columnNames, const String& notes, double timestamp, Inspector::InspectorObject values, Inspector::InspectorValue payload, int databaseId, PassRefPtr<Inspector::Protocol::Database::Error> sqlError, const String& screenColor, const String& printColor)
358 {
359     RefPtr<InspectorObject> jsonMessage = InspectorObject::create();
360     jsonMessage->setArray(ASCIILiteral("columnNames"), columnNames);
361     jsonMessage->setString(ASCIILiteral("notes"), notes);
362     jsonMessage->setDouble(ASCIILiteral("timestamp"), timestamp);
363     jsonMessage->setObject(ASCIILiteral("values"), values);
364     jsonMessage->setValue(ASCIILiteral("payload"), payload);
365     jsonMessage->setInteger(ASCIILiteral("databaseId"), databaseId);
366     jsonMessage->setObject(ASCIILiteral("sqlError"), sqlError);
367     jsonMessage->setString(ASCIILiteral("screenColor"), Inspector::Protocol::getEnumConstantValue(screenColor));
368     jsonMessage->setString(ASCIILiteral("printColor"), Inspector::Protocol::getEnumConstantValue(printColor));
369     sendIfActive(jsonMessage, ErrorString());
370 }
371
372 void InspectorDatabaseBackendDispatcher::executeSQLAsync(long callId, const InspectorObject& message)
373 {
374     RefPtr<InspectorArray> protocolErrors = InspectorArray::create();
375     RefPtr<InspectorObject> paramsContainer = message.getObject(ASCIILiteral("params"));
376     InspectorObject* paramsContainerPtr = paramsContainer.get();
377     InspectorArray* protocolErrorsPtr = protocolErrors.get();
378     int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral("databaseId"), nullptr, protocolErrorsPtr);
379     String in_query = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral("query"), nullptr, protocolErrorsPtr);
380     if (protocolErrors->length()) {
381         String errorMessage = String::format("Some arguments of method '%s' can't be processed", "Database.executeSQLAsync");
382         m_backendDispatcher->reportProtocolError(&callId, InspectorBackendDispatcher::InvalidParams, errorMessage, protocolErrors.release());
383         return;
384     }
385
386     ErrorString error;
387     RefPtr<InspectorObject> result = InspectorObject::create();
388     RefPtr<InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback> callback = adoptRef(new InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback(m_backendDispatcher,callId));
389     m_agent->executeSQLAsync(error, in_databaseId, in_query, callback);
390
391     if (error.length()) {
392         callback->disable();
393         m_backendDispatcher->reportProtocolError(&callId, Inspector::InspectorBackendDispatcher::ServerError, error);
394         return;
395     }
396 }
397
398 } // namespace Inspector
399
400 #endif // ENABLE(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-async-attribute.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 #if ENABLE(INSPECTOR)
439
440 #include "InspectorProtocolObjects.h"
441 #include <inspector/InspectorFrontendChannel.h>
442 #include <inspector/InspectorValues.h>
443 #include <wtf/PassRefPtr.h>
444 #include <wtf/text/WTFString.h>
445
446 namespace Inspector {
447
448
449
450 } // namespace Inspector
451
452 #endif // ENABLE(INSPECTOR)
453
454 #endif // !defined(InspectorFrontendDispatchers_h)
455 ### End File: InspectorFrontendDispatchers.h
456
457 ### Begin File: InspectorFrontendDispatchers.cpp
458 /*
459  * Copyright (C) 2013 Google Inc. All rights reserved.
460  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
461  * Copyright (C) 2014 University of Washington. All rights reserved.
462  *
463  * Redistribution and use in source and binary forms, with or without
464  * modification, are permitted provided that the following conditions
465  * are met:
466  * 1. Redistributions of source code must retain the above copyright
467  *    notice, this list of conditions and the following disclaimer.
468  * 2. Redistributions in binary form must reproduce the above copyright
469  *    notice, this list of conditions and the following disclaimer in the
470  *    documentation and/or other materials provided with the distribution.
471  *
472  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
473  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
474  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
475  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
476  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
477  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
478  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
479  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
480  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
481  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
482  * THE POSSIBILITY OF SUCH DAMAGE.
483  */
484
485 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
486 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
487
488 #include "config.h"
489 #include "InspectorFrontendDispatchers.h"
490
491 #if ENABLE(INSPECTOR)
492
493 #include <wtf/text/CString.h>
494
495 namespace Inspector {
496
497 } // namespace Inspector
498
499 #endif // ENABLE(INSPECTOR)
500
501 ### End File: InspectorFrontendDispatchers.cpp
502
503 ### Begin File: InspectorProtocolObjects.h
504 /*
505  * Copyright (C) 2013 Google Inc. All rights reserved.
506  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
507  * Copyright (C) 2014 University of Washington. All rights reserved.
508  *
509  * Redistribution and use in source and binary forms, with or without
510  * modification, are permitted provided that the following conditions
511  * are met:
512  * 1. Redistributions of source code must retain the above copyright
513  *    notice, this list of conditions and the following disclaimer.
514  * 2. Redistributions in binary form must reproduce the above copyright
515  *    notice, this list of conditions and the following disclaimer in the
516  *    documentation and/or other materials provided with the distribution.
517  *
518  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
519  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
520  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
521  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
522  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
523  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
524  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
525  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
526  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
527  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
528  * THE POSSIBILITY OF SUCH DAMAGE.
529  */
530
531 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
532 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
533
534 #ifndef InspectorProtocolObjects_h
535 #define InspectorProtocolObjects_h
536
537 #if ENABLE(INSPECTOR)
538
539 #include <inspector/InspectorProtocolTypes.h>
540 #include <wtf/Assertions.h>
541 #include <wtf/PassRefPtr.h>
542
543 namespace Inspector {
544
545
546
547 namespace Protocol {
548
549 // Forward declarations.
550 namespace Database {
551 class Error;
552 enum class PrimaryColors;
553 } // Database
554 // End of forward declarations.
555
556
557 // Typedefs.
558 namespace Database {
559 /* Unique identifier of Database object. */
560 typedef int DatabaseId;
561 } // Database
562 // End of typedefs.
563
564 String getEnumConstantValue(int code);
565
566 template<typename T> String getEnumConstantValue(T enumValue)
567 {
568     return getEnumConstantValue(static_cast<int>(enumValue));
569 }
570
571 namespace Database {
572 /*  */
573 enum class PrimaryColors {
574     Red = 0,
575     Green = 1,
576     Blue = 2,
577 }; // enum class PrimaryColors
578 /* Database error. */
579 class Error : public Inspector::InspectorObjectBase {
580 public:
581     enum {
582         NoFieldsSet = 0,
583         MessageSet = 1 << 0,
584         CodeSet = 1 << 1,
585         AllFieldsSet = (MessageSet | CodeSet)
586     };
587
588     template<int STATE>
589     class Builder {
590     private:
591         RefPtr<Inspector::InspectorObject> m_result;
592
593         template<int STEP> Builder<STATE | STEP>& castState()
594         {
595             return *reinterpret_cast<Builder<STATE | STEP>*>(this);
596         }
597
598         Builder(PassRefPtr</*Error*/Inspector::InspectorObject> ptr)
599         {
600             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
601             m_result = ptr;
602         }
603         friend class Error;
604     public:
605
606         Builder<STATE | MessageSet>& setMessage(const String& value)
607         {
608             COMPILE_ASSERT(!(STATE & MessageSet), property_message_already_set);
609             m_result->setString(ASCIILiteral("message"), value);
610             return castState<MessageSet>();
611         }
612
613         Builder<STATE | CodeSet>& setCode(int value)
614         {
615             COMPILE_ASSERT(!(STATE & CodeSet), property_code_already_set);
616             m_result->setInteger(ASCIILiteral("code"), value);
617             return castState<CodeSet>();
618         }
619
620         operator RefPtr<Error>& ()
621         {
622             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
623             COMPILE_ASSERT(sizeof(Error) == sizeof(Inspector::InspectorObject), cannot_cast);
624             return *reinterpret_cast<RefPtr<Error>*>(&m_result);
625         }
626
627         PassRefPtr<Error> release()
628         {
629             return RefPtr<Error>(*this).release();
630         }
631     };
632
633     /*
634      * Synthetic constructor:
635      * RefPtr<Error> result = Error::create()
636      *     .setMessage(...)
637      *     .setCode(...);
638      */
639     static Builder<NoFieldsSet> create()
640     {
641         return Builder<NoFieldsSet>(Inspector::InspectorObject::create());
642     }
643     typedef Inspector::Protocol::StructItemTraits ItemTraits;
644 };
645
646 } // Database
647
648
649
650 } // namespace Protocol
651
652 } // namespace Inspector
653
654 #endif // ENABLE(INSPECTOR)
655
656 #endif // !defined(InspectorProtocolObjects_h)
657 ### End File: InspectorProtocolObjects.h
658
659 ### Begin File: InspectorProtocolObjects.cpp
660 /*
661  * Copyright (C) 2013 Google Inc. All rights reserved.
662  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
663  * Copyright (C) 2014 University of Washington. All rights reserved.
664  *
665  * Redistribution and use in source and binary forms, with or without
666  * modification, are permitted provided that the following conditions
667  * are met:
668  * 1. Redistributions of source code must retain the above copyright
669  *    notice, this list of conditions and the following disclaimer.
670  * 2. Redistributions in binary form must reproduce the above copyright
671  *    notice, this list of conditions and the following disclaimer in the
672  *    documentation and/or other materials provided with the distribution.
673  *
674  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
675  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
676  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
677  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
678  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
679  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
680  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
681  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
682  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
683  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
684  * THE POSSIBILITY OF SUCH DAMAGE.
685  */
686
687 // DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
688 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
689
690 #include "config.h"
691 #include "InspectorProtocolObjects.h"
692
693 #if ENABLE(INSPECTOR)
694
695 #include <wtf/text/CString.h>
696
697 namespace Inspector {
698
699 namespace Protocol {
700
701 static const char* const enum_constant_values[] = {
702     "red",
703     "green",
704     "blue",
705     "cyan",
706     "magenta",
707     "yellow",
708     "black",
709 };
710
711 String getEnumConstantValue(int code) {
712     return enum_constant_values[code];
713 }
714
715
716
717 } // namespace Protocol
718
719 } // namespace Inspector
720
721 #endif // ENABLE(INSPECTOR)
722
723 ### End File: InspectorProtocolObjects.cpp