f490756059588d8f757e588d4a03c4e8b0e3f6ca
[WebKit-https.git] / Source / JavaScriptCore / inspector / scripts / tests / expected / type-requiring-runtime-casts.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 type-requiring-runtime-casts.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
52
53 } // namespace Inspector
54
55 #endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
56
57 #endif // !defined(InspectorAlternateBackendDispatchers_h)
58 ### End File: InspectorAlternateBackendDispatchers.h
59
60 ### Begin File: InspectorBackendCommands.js
61 /*
62  * Copyright (C) 2013 Google Inc. All rights reserved.
63  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
64  * Copyright (C) 2014 University of Washington. All rights reserved.
65  *
66  * Redistribution and use in source and binary forms, with or without
67  * modification, are permitted provided that the following conditions
68  * are met:
69  * 1. Redistributions of source code must retain the above copyright
70  *    notice, this list of conditions and the following disclaimer.
71  * 2. Redistributions in binary form must reproduce the above copyright
72  *    notice, this list of conditions and the following disclaimer in the
73  *    documentation and/or other materials provided with the distribution.
74  *
75  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
76  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
77  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
78  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
79  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
80  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
81  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
82  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
83  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
84  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
85  * THE POSSIBILITY OF SUCH DAMAGE.
86  */
87
88 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
89 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
90
91 // Test.
92 InspectorBackend.registerEnum("Test.UncastedAnimals", {Pigs: "Pigs", Cows: "Cows", Cats: "Cats", Hens: "Hens"});
93 InspectorBackend.registerEnum("Test.CastedAnimals", {Ducks: "Ducks", Hens: "Hens", Crows: "Crows", Flamingos: "Flamingos"});
94 ### End File: InspectorBackendCommands.js
95
96 ### Begin File: InspectorBackendDispatchers.h
97 /*
98  * Copyright (C) 2013 Google Inc. All rights reserved.
99  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
100  * Copyright (C) 2014 University of Washington. All rights reserved.
101  *
102  * Redistribution and use in source and binary forms, with or without
103  * modification, are permitted provided that the following conditions
104  * are met:
105  * 1. Redistributions of source code must retain the above copyright
106  *    notice, this list of conditions and the following disclaimer.
107  * 2. Redistributions in binary form must reproduce the above copyright
108  *    notice, this list of conditions and the following disclaimer in the
109  *    documentation and/or other materials provided with the distribution.
110  *
111  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
112  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
113  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
114  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
115  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
116  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
117  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
118  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
119  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
120  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
121  * THE POSSIBILITY OF SUCH DAMAGE.
122  */
123
124 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
125 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
126
127 #ifndef InspectorBackendDispatchers_h
128 #define InspectorBackendDispatchers_h
129
130 #include "InspectorProtocolObjects.h"
131 #include <inspector/InspectorBackendDispatcher.h>
132 #include <wtf/text/WTFString.h>
133
134 namespace Inspector {
135
136 typedef String ErrorString;
137
138
139
140 } // namespace Inspector
141
142 #endif // !defined(InspectorBackendDispatchers_h)
143 ### End File: InspectorBackendDispatchers.h
144
145 ### Begin File: InspectorBackendDispatchers.cpp
146 /*
147  * Copyright (C) 2013 Google Inc. All rights reserved.
148  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
149  * Copyright (C) 2014 University of Washington. All rights reserved.
150  *
151  * Redistribution and use in source and binary forms, with or without
152  * modification, are permitted provided that the following conditions
153  * are met:
154  * 1. Redistributions of source code must retain the above copyright
155  *    notice, this list of conditions and the following disclaimer.
156  * 2. Redistributions in binary form must reproduce the above copyright
157  *    notice, this list of conditions and the following disclaimer in the
158  *    documentation and/or other materials provided with the distribution.
159  *
160  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
161  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
162  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
163  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
164  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
165  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
166  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
167  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
168  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
169  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
170  * THE POSSIBILITY OF SUCH DAMAGE.
171  */
172
173 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
174 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
175
176 #include "config.h"
177 #include "InspectorBackendDispatchers.h"
178
179 #include <inspector/InspectorFrontendChannel.h>
180 #include <inspector/InspectorValues.h>
181 #include <wtf/text/CString.h>
182
183 #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
184 #include "InspectorAlternateBackendDispatchers.h"
185 #endif
186
187 namespace Inspector {
188
189
190
191 } // namespace Inspector
192
193 ### End File: InspectorBackendDispatchers.cpp
194
195 ### Begin File: InspectorFrontendDispatchers.h
196 /*
197  * Copyright (C) 2013 Google Inc. All rights reserved.
198  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
199  * Copyright (C) 2014 University of Washington. All rights reserved.
200  *
201  * Redistribution and use in source and binary forms, with or without
202  * modification, are permitted provided that the following conditions
203  * are met:
204  * 1. Redistributions of source code must retain the above copyright
205  *    notice, this list of conditions and the following disclaimer.
206  * 2. Redistributions in binary form must reproduce the above copyright
207  *    notice, this list of conditions and the following disclaimer in the
208  *    documentation and/or other materials provided with the distribution.
209  *
210  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
211  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
212  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
213  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
214  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
215  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
216  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
217  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
218  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
219  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
220  * THE POSSIBILITY OF SUCH DAMAGE.
221  */
222
223 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
224 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
225
226 #ifndef InspectorFrontendDispatchers_h
227 #define InspectorFrontendDispatchers_h
228
229 #include "InspectorProtocolObjects.h"
230 #include <inspector/InspectorFrontendChannel.h>
231 #include <inspector/InspectorValues.h>
232 #include <wtf/text/WTFString.h>
233
234 namespace Inspector {
235
236
237
238 } // namespace Inspector
239
240 #endif // !defined(InspectorFrontendDispatchers_h)
241 ### End File: InspectorFrontendDispatchers.h
242
243 ### Begin File: InspectorFrontendDispatchers.cpp
244 /*
245  * Copyright (C) 2013 Google Inc. All rights reserved.
246  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
247  * Copyright (C) 2014 University of Washington. All rights reserved.
248  *
249  * Redistribution and use in source and binary forms, with or without
250  * modification, are permitted provided that the following conditions
251  * are met:
252  * 1. Redistributions of source code must retain the above copyright
253  *    notice, this list of conditions and the following disclaimer.
254  * 2. Redistributions in binary form must reproduce the above copyright
255  *    notice, this list of conditions and the following disclaimer in the
256  *    documentation and/or other materials provided with the distribution.
257  *
258  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
259  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
260  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
261  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
262  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
263  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
264  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
265  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
266  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
267  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
268  * THE POSSIBILITY OF SUCH DAMAGE.
269  */
270
271 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
272 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
273
274 #include "config.h"
275 #include "InspectorFrontendDispatchers.h"
276
277 #include <wtf/text/CString.h>
278
279 namespace Inspector {
280
281 } // namespace Inspector
282
283 ### End File: InspectorFrontendDispatchers.cpp
284
285 ### Begin File: InspectorProtocolObjects.h
286 /*
287  * Copyright (C) 2013 Google Inc. All rights reserved.
288  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
289  * Copyright (C) 2014 University of Washington. All rights reserved.
290  *
291  * Redistribution and use in source and binary forms, with or without
292  * modification, are permitted provided that the following conditions
293  * are met:
294  * 1. Redistributions of source code must retain the above copyright
295  *    notice, this list of conditions and the following disclaimer.
296  * 2. Redistributions in binary form must reproduce the above copyright
297  *    notice, this list of conditions and the following disclaimer in the
298  *    documentation and/or other materials provided with the distribution.
299  *
300  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
301  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
302  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
303  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
304  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
305  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
306  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
307  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
308  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
309  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
310  * THE POSSIBILITY OF SUCH DAMAGE.
311  */
312
313 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
314 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
315
316 #ifndef InspectorProtocolObjects_h
317 #define InspectorProtocolObjects_h
318
319 #include <inspector/InspectorProtocolTypes.h>
320 #include <wtf/Assertions.h>
321
322 namespace Inspector {
323
324
325
326 namespace Protocol {
327
328 // Forward declarations.
329 namespace Test {
330 class RecursiveObject1;
331 class RecursiveObject2;
332 class TypeNeedingCast;
333 enum class CastedAnimals;
334 enum class UncastedAnimals;
335 } // Test
336 // End of forward declarations.
337
338
339 // Typedefs.
340 namespace Test {
341 typedef int CastedObjectId;
342 typedef int UncastedObjectId;
343 } // Test
344 // End of typedefs.
345
346 String getEnumConstantValue(int code);
347
348 template<typename T> String getEnumConstantValue(T enumValue)
349 {
350     return getEnumConstantValue(static_cast<int>(enumValue));
351 }
352
353 namespace Test {
354 /* A dummy type that requires runtime casts, and forces non-primitive referenced types to also emit runtime cast helpers. */
355 class TypeNeedingCast : public Inspector::InspectorObjectBase {
356 public:
357     enum {
358         NoFieldsSet = 0,
359         StringSet = 1 << 0,
360         NumberSet = 1 << 1,
361         AnimalsSet = 1 << 2,
362         IdSet = 1 << 3,
363         TreeSet = 1 << 4,
364         AllFieldsSet = (StringSet | NumberSet | AnimalsSet | IdSet | TreeSet)
365     };
366
367     template<int STATE>
368     class Builder {
369     private:
370         RefPtr<InspectorObject> m_result;
371
372         template<int STEP> Builder<STATE | STEP>& castState()
373         {
374             return *reinterpret_cast<Builder<STATE | STEP>*>(this);
375         }
376
377         Builder(Ref</*TypeNeedingCast*/InspectorObject>&& object)
378             : m_result(WTF::move(object))
379         {
380             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
381         }
382         friend class TypeNeedingCast;
383     public:
384
385         Builder<STATE | StringSet>& setString(const String& value)
386         {
387             COMPILE_ASSERT(!(STATE & StringSet), property_string_already_set);
388             m_result->setString(ASCIILiteral("string"), value);
389             return castState<StringSet>();
390         }
391
392         Builder<STATE | NumberSet>& setNumber(int value)
393         {
394             COMPILE_ASSERT(!(STATE & NumberSet), property_number_already_set);
395             m_result->setInteger(ASCIILiteral("number"), value);
396             return castState<NumberSet>();
397         }
398
399         Builder<STATE | AnimalsSet>& setAnimals(Inspector::Protocol::Test::CastedAnimals value)
400         {
401             COMPILE_ASSERT(!(STATE & AnimalsSet), property_animals_already_set);
402             m_result->setString(ASCIILiteral("animals"), Inspector::Protocol::getEnumConstantValue(static_cast<int>(value)));
403             return castState<AnimalsSet>();
404         }
405
406         Builder<STATE | IdSet>& setId(int value)
407         {
408             COMPILE_ASSERT(!(STATE & IdSet), property_id_already_set);
409             m_result->setInteger(ASCIILiteral("id"), value);
410             return castState<IdSet>();
411         }
412
413         Builder<STATE | TreeSet>& setTree(RefPtr<Inspector::Protocol::Test::RecursiveObject1> value)
414         {
415             COMPILE_ASSERT(!(STATE & TreeSet), property_tree_already_set);
416             m_result->setObject(ASCIILiteral("tree"), value);
417             return castState<TreeSet>();
418         }
419
420         Ref<TypeNeedingCast> release()
421         {
422             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
423             COMPILE_ASSERT(sizeof(TypeNeedingCast) == sizeof(InspectorObject), cannot_cast);
424
425             Ref<InspectorObject> result = m_result.releaseNonNull();
426             return WTF::move(*reinterpret_cast<Ref<TypeNeedingCast>*>(&result));
427         }
428     };
429
430     /*
431      * Synthetic constructor:
432      * Ref<TypeNeedingCast> result = TypeNeedingCast::create()
433      *     .setString(...)
434      *     .setNumber(...)
435      *     .setAnimals(...)
436      *     .setId(...)
437      *     .setTree(...)
438      *     .release();
439      */
440     static Builder<NoFieldsSet> create()
441     {
442         return Builder<NoFieldsSet>(InspectorObject::create());
443     }
444 };
445
446 /*  */
447 enum class UncastedAnimals {
448     Pigs = 4,
449     Cows = 5,
450     Cats = 6,
451     Hens = 1,
452 }; // enum class UncastedAnimals
453 /*  */
454 enum class CastedAnimals {
455     Ducks = 0,
456     Hens = 1,
457     Crows = 2,
458     Flamingos = 3,
459 }; // enum class CastedAnimals
460 class RecursiveObject1 : public Inspector::InspectorObjectBase {
461 public:
462     enum {
463         NoFieldsSet = 0,
464         AllFieldsSet = 0
465     };
466
467     template<int STATE>
468     class Builder {
469     private:
470         RefPtr<InspectorObject> m_result;
471
472         template<int STEP> Builder<STATE | STEP>& castState()
473         {
474             return *reinterpret_cast<Builder<STATE | STEP>*>(this);
475         }
476
477         Builder(Ref</*RecursiveObject1*/InspectorObject>&& object)
478             : m_result(WTF::move(object))
479         {
480             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
481         }
482         friend class RecursiveObject1;
483     public:
484
485         Ref<RecursiveObject1> release()
486         {
487             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
488             COMPILE_ASSERT(sizeof(RecursiveObject1) == sizeof(InspectorObject), cannot_cast);
489
490             Ref<InspectorObject> result = m_result.releaseNonNull();
491             return WTF::move(*reinterpret_cast<Ref<RecursiveObject1>*>(&result));
492         }
493     };
494
495     /*
496      * Synthetic constructor:
497      * Ref<RecursiveObject1> result = RecursiveObject1::create()
498      *     .release();
499      */
500     static Builder<NoFieldsSet> create()
501     {
502         return Builder<NoFieldsSet>(InspectorObject::create());
503     }
504
505     void setObj(RefPtr<Inspector::Protocol::Test::RecursiveObject2> value)
506     {
507         InspectorObjectBase::setObject(ASCIILiteral("obj"), WTF::move(value));
508     }
509 };
510
511 class RecursiveObject2 : public Inspector::InspectorObjectBase {
512 public:
513     enum {
514         NoFieldsSet = 0,
515         AllFieldsSet = 0
516     };
517
518     template<int STATE>
519     class Builder {
520     private:
521         RefPtr<InspectorObject> m_result;
522
523         template<int STEP> Builder<STATE | STEP>& castState()
524         {
525             return *reinterpret_cast<Builder<STATE | STEP>*>(this);
526         }
527
528         Builder(Ref</*RecursiveObject2*/InspectorObject>&& object)
529             : m_result(WTF::move(object))
530         {
531             COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
532         }
533         friend class RecursiveObject2;
534     public:
535
536         Ref<RecursiveObject2> release()
537         {
538             COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
539             COMPILE_ASSERT(sizeof(RecursiveObject2) == sizeof(InspectorObject), cannot_cast);
540
541             Ref<InspectorObject> result = m_result.releaseNonNull();
542             return WTF::move(*reinterpret_cast<Ref<RecursiveObject2>*>(&result));
543         }
544     };
545
546     /*
547      * Synthetic constructor:
548      * Ref<RecursiveObject2> result = RecursiveObject2::create()
549      *     .release();
550      */
551     static Builder<NoFieldsSet> create()
552     {
553         return Builder<NoFieldsSet>(InspectorObject::create());
554     }
555
556     void setObj(RefPtr<Inspector::Protocol::Test::RecursiveObject1> value)
557     {
558         InspectorObjectBase::setObject(ASCIILiteral("obj"), WTF::move(value));
559     }
560 };
561
562 } // Test
563
564 template<> struct BindingTraits<Inspector::Protocol::Test::CastedAnimals> {
565 #if !ASSERT_DISABLED
566 static void assertValueHasExpectedType(Inspector::InspectorValue*);
567 #endif // !ASSERT_DISABLED
568 };
569 template<> struct BindingTraits<Inspector::Protocol::Test::TypeNeedingCast> {
570 static RefPtr<Inspector::Protocol::Test::TypeNeedingCast> runtimeCast(RefPtr<Inspector::InspectorValue>&& value);
571 #if !ASSERT_DISABLED
572 static void assertValueHasExpectedType(Inspector::InspectorValue*);
573 #endif // !ASSERT_DISABLED
574 };
575 template<> struct BindingTraits<Inspector::Protocol::Test::RecursiveObject1> {
576 #if !ASSERT_DISABLED
577 static void assertValueHasExpectedType(Inspector::InspectorValue*);
578 #endif // !ASSERT_DISABLED
579 };
580 template<> struct BindingTraits<Inspector::Protocol::Test::RecursiveObject2> {
581 #if !ASSERT_DISABLED
582 static void assertValueHasExpectedType(Inspector::InspectorValue*);
583 #endif // !ASSERT_DISABLED
584 };
585
586 } // namespace Protocol
587
588 } // namespace Inspector
589
590 #endif // !defined(InspectorProtocolObjects_h)
591 ### End File: InspectorProtocolObjects.h
592
593 ### Begin File: InspectorProtocolObjects.cpp
594 /*
595  * Copyright (C) 2013 Google Inc. All rights reserved.
596  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
597  * Copyright (C) 2014 University of Washington. All rights reserved.
598  *
599  * Redistribution and use in source and binary forms, with or without
600  * modification, are permitted provided that the following conditions
601  * are met:
602  * 1. Redistributions of source code must retain the above copyright
603  *    notice, this list of conditions and the following disclaimer.
604  * 2. Redistributions in binary form must reproduce the above copyright
605  *    notice, this list of conditions and the following disclaimer in the
606  *    documentation and/or other materials provided with the distribution.
607  *
608  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
609  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
610  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
611  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
612  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
613  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
614  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
615  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
616  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
617  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
618  * THE POSSIBILITY OF SUCH DAMAGE.
619  */
620
621 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
622 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
623
624 #include "config.h"
625 #include "InspectorProtocolObjects.h"
626
627 #include <wtf/text/CString.h>
628
629 namespace Inspector {
630
631 namespace Protocol {
632
633 static const char* const enum_constant_values[] = {
634     "Ducks",
635     "Hens",
636     "Crows",
637     "Flamingos",
638     "Pigs",
639     "Cows",
640     "Cats",
641 };
642
643 String getEnumConstantValue(int code) {
644     return enum_constant_values[code];
645 }
646
647
648
649 #if !ASSERT_DISABLED
650 void BindingTraits<Inspector::Protocol::Test::CastedAnimals>::assertValueHasExpectedType(Inspector::InspectorValue* value)
651 {
652     ASSERT_ARG(value, value);
653     String result;
654     bool castSucceeded = value->asString(result);
655     ASSERT(castSucceeded);
656     ASSERT(result == "Ducks" || result == "Hens" || result == "Crows" || result == "Flamingos");
657 }
658 #endif // !ASSERT_DISABLED
659
660 #if !ASSERT_DISABLED
661 void BindingTraits<Inspector::Protocol::Test::TypeNeedingCast>::assertValueHasExpectedType(Inspector::InspectorValue* value)
662 {
663     ASSERT_ARG(value, value);
664     RefPtr<InspectorObject> object;
665     bool castSucceeded = value->asObject(object);
666     ASSERT_UNUSED(castSucceeded, castSucceeded);
667     {
668         InspectorObject::iterator stringPos = object->find(ASCIILiteral("string"));
669         ASSERT(stringPos != object->end());
670         BindingTraits<String>::assertValueHasExpectedType(stringPos->value.get());
671     }
672     {
673         InspectorObject::iterator numberPos = object->find(ASCIILiteral("number"));
674         ASSERT(numberPos != object->end());
675         BindingTraits<int>::assertValueHasExpectedType(numberPos->value.get());
676     }
677     {
678         InspectorObject::iterator animalsPos = object->find(ASCIILiteral("animals"));
679         ASSERT(animalsPos != object->end());
680         BindingTraits<Inspector::Protocol::Test::CastedAnimals>::assertValueHasExpectedType(animalsPos->value.get());
681     }
682     {
683         InspectorObject::iterator idPos = object->find(ASCIILiteral("id"));
684         ASSERT(idPos != object->end());
685         BindingTraits<int>::assertValueHasExpectedType(idPos->value.get());
686     }
687     {
688         InspectorObject::iterator treePos = object->find(ASCIILiteral("tree"));
689         ASSERT(treePos != object->end());
690         BindingTraits<Inspector::Protocol::Test::RecursiveObject1>::assertValueHasExpectedType(treePos->value.get());
691     }
692
693     int foundPropertiesCount = 5;
694     if (foundPropertiesCount != object->size())
695         FATAL("Unexpected properties in object: %s\n", object->toJSONString().ascii().data());
696 }
697 #endif // !ASSERT_DISABLED
698
699 RefPtr<Inspector::Protocol::Test::TypeNeedingCast> BindingTraits<Inspector::Protocol::Test::TypeNeedingCast>::runtimeCast(RefPtr<InspectorValue>&& value)
700 {
701     RefPtr<InspectorObject> result;
702     bool castSucceeded = value->asObject(result);
703     ASSERT_UNUSED(castSucceeded, castSucceeded);
704 #if !ASSERT_DISABLED
705     BindingTraits<Inspector::Protocol::Test::TypeNeedingCast>::assertValueHasExpectedType(result.get());
706 #endif  // !ASSERT_DISABLED
707     COMPILE_ASSERT(sizeof(Inspector::Protocol::Test::TypeNeedingCast) == sizeof(InspectorObjectBase), type_cast_problem);
708     return static_cast<Inspector::Protocol::Test::TypeNeedingCast*>(static_cast<InspectorObjectBase*>(result.get()));
709 }
710
711
712 #if !ASSERT_DISABLED
713 void BindingTraits<Inspector::Protocol::Test::RecursiveObject1>::assertValueHasExpectedType(Inspector::InspectorValue* value)
714 {
715     ASSERT_ARG(value, value);
716     RefPtr<InspectorObject> object;
717     bool castSucceeded = value->asObject(object);
718     ASSERT_UNUSED(castSucceeded, castSucceeded);
719
720     int foundPropertiesCount = 0;
721     {
722         InspectorObject::iterator objPos = object->find(ASCIILiteral("obj"));
723         if (objPos != object->end()) {
724             BindingTraits<Inspector::Protocol::Test::RecursiveObject2>::assertValueHasExpectedType(objPos->value.get());
725             ++foundPropertiesCount;
726         }
727     }
728     if (foundPropertiesCount != object->size())
729         FATAL("Unexpected properties in object: %s\n", object->toJSONString().ascii().data());
730 }
731 #endif // !ASSERT_DISABLED
732
733 #if !ASSERT_DISABLED
734 void BindingTraits<Inspector::Protocol::Test::RecursiveObject2>::assertValueHasExpectedType(Inspector::InspectorValue* value)
735 {
736     ASSERT_ARG(value, value);
737     RefPtr<InspectorObject> object;
738     bool castSucceeded = value->asObject(object);
739     ASSERT_UNUSED(castSucceeded, castSucceeded);
740
741     int foundPropertiesCount = 0;
742     {
743         InspectorObject::iterator objPos = object->find(ASCIILiteral("obj"));
744         if (objPos != object->end()) {
745             BindingTraits<Inspector::Protocol::Test::RecursiveObject1>::assertValueHasExpectedType(objPos->value.get());
746             ++foundPropertiesCount;
747         }
748     }
749     if (foundPropertiesCount != object->size())
750         FATAL("Unexpected properties in object: %s\n", object->toJSONString().ascii().data());
751 }
752 #endif // !ASSERT_DISABLED
753
754 } // namespace Protocol
755
756 } // namespace Inspector
757
758 ### End File: InspectorProtocolObjects.cpp
759
760 ### Begin File: RWIProtocolBackendDispatchers.h
761 /*
762  * Copyright (C) 2013 Google Inc. All rights reserved.
763  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
764  * Copyright (C) 2014 University of Washington. All rights reserved.
765  *
766  * Redistribution and use in source and binary forms, with or without
767  * modification, are permitted provided that the following conditions
768  * are met:
769  * 1. Redistributions of source code must retain the above copyright
770  *    notice, this list of conditions and the following disclaimer.
771  * 2. Redistributions in binary form must reproduce the above copyright
772  *    notice, this list of conditions and the following disclaimer in the
773  *    documentation and/or other materials provided with the distribution.
774  *
775  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
776  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
777  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
778  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
779  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
780  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
781  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
782  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
783  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
784  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
785  * THE POSSIBILITY OF SUCH DAMAGE.
786  */
787
788 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
789 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
790
791 #include <JavaScriptCore/InspectorAlternateBackendDispatchers.h>
792 #include <wtf/RetainPtr.h>
793
794
795
796 namespace Inspector {
797
798
799
800
801 } // namespace Inspector
802
803 ### End File: RWIProtocolBackendDispatchers.h
804
805 ### Begin File: RWIProtocolConfiguration.mm
806 /*
807  * Copyright (C) 2013 Google Inc. All rights reserved.
808  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
809  * Copyright (C) 2014 University of Washington. All rights reserved.
810  *
811  * Redistribution and use in source and binary forms, with or without
812  * modification, are permitted provided that the following conditions
813  * are met:
814  * 1. Redistributions of source code must retain the above copyright
815  *    notice, this list of conditions and the following disclaimer.
816  * 2. Redistributions in binary form must reproduce the above copyright
817  *    notice, this list of conditions and the following disclaimer in the
818  *    documentation and/or other materials provided with the distribution.
819  *
820  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
821  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
822  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
823  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
824  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
825  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
826  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
827  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
828  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
829  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
830  * THE POSSIBILITY OF SUCH DAMAGE.
831  */
832
833 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
834 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
835
836 #import "config.h"
837 #import "RWIProtocolConfiguration.h"
838
839 #import "RWIProtocolInternal.h"
840 #import "RWIProtocolBackendDispatchers.h"
841 #import <JavaScriptCore/AlternateDispatchableAgent.h>
842 #import <JavaScriptCore/AugmentableInspectorController.h>
843 #import <JavaScriptCore/InspectorAlternateBackendDispatchers.h>
844 #import <JavaScriptCore/InspectorBackendDispatchers.h>
845
846 using namespace Inspector;
847
848 @implementation RWIProtocolConfiguration
849 {
850     AugmentableInspectorController* _controller;
851 }
852
853 - (instancetype)initWithController:(AugmentableInspectorController*)controller
854 {
855     self = [super init];
856     if (!self)
857         return nil;
858     ASSERT(controller);
859     _controller = controller;
860     return self;
861 }
862
863 - (void)dealloc
864 {
865     [super dealloc];
866 }
867
868 @end
869
870
871 ### End File: RWIProtocolConfiguration.mm
872
873 ### Begin File: RWIProtocolConfiguration.h
874 /*
875  * Copyright (C) 2013 Google Inc. All rights reserved.
876  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
877  * Copyright (C) 2014 University of Washington. All rights reserved.
878  *
879  * Redistribution and use in source and binary forms, with or without
880  * modification, are permitted provided that the following conditions
881  * are met:
882  * 1. Redistributions of source code must retain the above copyright
883  *    notice, this list of conditions and the following disclaimer.
884  * 2. Redistributions in binary form must reproduce the above copyright
885  *    notice, this list of conditions and the following disclaimer in the
886  *    documentation and/or other materials provided with the distribution.
887  *
888  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
889  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
890  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
891  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
892  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
893  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
894  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
895  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
896  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
897  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
898  * THE POSSIBILITY OF SUCH DAMAGE.
899  */
900
901 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
902 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
903
904 #import "RWIProtocol.h"
905
906 __attribute__((visibility ("default")))
907 @interface RWIProtocolConfiguration : NSObject
908 @end
909
910
911 ### End File: RWIProtocolConfiguration.h
912
913 ### Begin File: RWIProtocolBackendDispatchers.mm
914 /*
915  * Copyright (C) 2013 Google Inc. All rights reserved.
916  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
917  * Copyright (C) 2014 University of Washington. All rights reserved.
918  *
919  * Redistribution and use in source and binary forms, with or without
920  * modification, are permitted provided that the following conditions
921  * are met:
922  * 1. Redistributions of source code must retain the above copyright
923  *    notice, this list of conditions and the following disclaimer.
924  * 2. Redistributions in binary form must reproduce the above copyright
925  *    notice, this list of conditions and the following disclaimer in the
926  *    documentation and/or other materials provided with the distribution.
927  *
928  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
929  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
930  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
931  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
932  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
933  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
934  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
935  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
936  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
937  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
938  * THE POSSIBILITY OF SUCH DAMAGE.
939  */
940
941 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
942 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
943
944 #import "config.h"
945 #import "RWIProtocolBackendDispatchers.h"
946
947 #include "RWIProtocolInternal.h"
948 #include "RWIProtocolEnumConversionHelpers.h"
949 #include <JavaScriptCore/InspectorFrontendChannel.h>
950 #include <JavaScriptCore/InspectorValues.h>
951
952 namespace Inspector {
953
954
955
956 } // namespace Inspector
957
958 ### End File: RWIProtocolBackendDispatchers.mm
959
960 ### Begin File: RWIProtocolEnumConversionHelpers.h
961 /*
962  * Copyright (C) 2013 Google Inc. All rights reserved.
963  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
964  * Copyright (C) 2014 University of Washington. All rights reserved.
965  *
966  * Redistribution and use in source and binary forms, with or without
967  * modification, are permitted provided that the following conditions
968  * are met:
969  * 1. Redistributions of source code must retain the above copyright
970  *    notice, this list of conditions and the following disclaimer.
971  * 2. Redistributions in binary form must reproduce the above copyright
972  *    notice, this list of conditions and the following disclaimer in the
973  *    documentation and/or other materials provided with the distribution.
974  *
975  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
976  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
977  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
978  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
979  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
980  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
981  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
982  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
983  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
984  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
985  * THE POSSIBILITY OF SUCH DAMAGE.
986  */
987
988 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
989 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
990
991 #import "RWIProtocolArrayConversionHelpers.h"
992
993 namespace Inspector {
994
995 template<typename ObjCEnumType>
996 ObjCEnumType fromProtocolString(String value);
997
998
999 inline String toProtocolString(RWIProtocolTestUncastedAnimals value)
1000 {
1001     switch(value) {
1002     case RWIProtocolTestUncastedAnimalsPigs:
1003         return ASCIILiteral("Pigs");
1004     case RWIProtocolTestUncastedAnimalsCows:
1005         return ASCIILiteral("Cows");
1006     case RWIProtocolTestUncastedAnimalsCats:
1007         return ASCIILiteral("Cats");
1008     case RWIProtocolTestUncastedAnimalsHens:
1009         return ASCIILiteral("Hens");
1010     }
1011 }
1012
1013 template<>
1014 inline RWIProtocolTestUncastedAnimals fromProtocolString(String value)
1015 {
1016     if (value == "Pigs")
1017         return RWIProtocolTestUncastedAnimalsPigs;
1018     if (value == "Cows")
1019         return RWIProtocolTestUncastedAnimalsCows;
1020     if (value == "Cats")
1021         return RWIProtocolTestUncastedAnimalsCats;
1022     if (value == "Hens")
1023         return RWIProtocolTestUncastedAnimalsHens;
1024     ASSERT_NOT_REACHED();
1025     return RWIProtocolTestUncastedAnimalsPigs;
1026 }
1027
1028 inline String toProtocolString(RWIProtocolTestCastedAnimals value)
1029 {
1030     switch(value) {
1031     case RWIProtocolTestCastedAnimalsDucks:
1032         return ASCIILiteral("Ducks");
1033     case RWIProtocolTestCastedAnimalsHens:
1034         return ASCIILiteral("Hens");
1035     case RWIProtocolTestCastedAnimalsCrows:
1036         return ASCIILiteral("Crows");
1037     case RWIProtocolTestCastedAnimalsFlamingos:
1038         return ASCIILiteral("Flamingos");
1039     }
1040 }
1041
1042 template<>
1043 inline RWIProtocolTestCastedAnimals fromProtocolString(String value)
1044 {
1045     if (value == "Ducks")
1046         return RWIProtocolTestCastedAnimalsDucks;
1047     if (value == "Hens")
1048         return RWIProtocolTestCastedAnimalsHens;
1049     if (value == "Crows")
1050         return RWIProtocolTestCastedAnimalsCrows;
1051     if (value == "Flamingos")
1052         return RWIProtocolTestCastedAnimalsFlamingos;
1053     ASSERT_NOT_REACHED();
1054     return RWIProtocolTestCastedAnimalsDucks;
1055 }
1056
1057 } // namespace Inspector
1058
1059 ### End File: RWIProtocolEnumConversionHelpers.h
1060
1061 ### Begin File: RWIProtocolEventDispatchers.mm
1062 /*
1063  * Copyright (C) 2013 Google Inc. All rights reserved.
1064  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
1065  * Copyright (C) 2014 University of Washington. All rights reserved.
1066  *
1067  * Redistribution and use in source and binary forms, with or without
1068  * modification, are permitted provided that the following conditions
1069  * are met:
1070  * 1. Redistributions of source code must retain the above copyright
1071  *    notice, this list of conditions and the following disclaimer.
1072  * 2. Redistributions in binary form must reproduce the above copyright
1073  *    notice, this list of conditions and the following disclaimer in the
1074  *    documentation and/or other materials provided with the distribution.
1075  *
1076  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1077  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1078  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1079  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1080  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1081  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1082  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1083  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1084  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1085  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1086  * THE POSSIBILITY OF SUCH DAMAGE.
1087  */
1088
1089 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
1090 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1091
1092 #import "config.h"
1093 #import "RWIProtocolInternal.h"
1094
1095 #import "RWIProtocolEnumConversionHelpers.h"
1096 #import <JavaScriptCore/InspectorFrontendChannel.h>
1097 #import <JavaScriptCore/InspectorValues.h>
1098
1099 using namespace Inspector;
1100
1101
1102
1103
1104 ### End File: RWIProtocolEventDispatchers.mm
1105
1106 ### Begin File: RWIProtocol.h
1107 /*
1108  * Copyright (C) 2013 Google Inc. All rights reserved.
1109  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
1110  * Copyright (C) 2014 University of Washington. All rights reserved.
1111  *
1112  * Redistribution and use in source and binary forms, with or without
1113  * modification, are permitted provided that the following conditions
1114  * are met:
1115  * 1. Redistributions of source code must retain the above copyright
1116  *    notice, this list of conditions and the following disclaimer.
1117  * 2. Redistributions in binary form must reproduce the above copyright
1118  *    notice, this list of conditions and the following disclaimer in the
1119  *    documentation and/or other materials provided with the distribution.
1120  *
1121  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1122  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1123  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1124  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1125  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1126  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1127  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1128  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1129  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1130  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1131  * THE POSSIBILITY OF SUCH DAMAGE.
1132  */
1133
1134 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
1135 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1136
1137 #import <Foundation/Foundation.h>
1138
1139 #import <WebInspector/RWIProtocolJSONObject.h>
1140
1141
1142 @class RWIProtocolTestTypeNeedingCast;
1143 @class RWIProtocolTestRecursiveObject1;
1144 @class RWIProtocolTestRecursiveObject2;
1145
1146
1147 typedef NS_ENUM(NSInteger, RWIProtocolTestUncastedAnimals) {
1148     RWIProtocolTestUncastedAnimalsPigs,
1149     RWIProtocolTestUncastedAnimalsCows,
1150     RWIProtocolTestUncastedAnimalsCats,
1151     RWIProtocolTestUncastedAnimalsHens,
1152 };
1153
1154 typedef NS_ENUM(NSInteger, RWIProtocolTestCastedAnimals) {
1155     RWIProtocolTestCastedAnimalsDucks,
1156     RWIProtocolTestCastedAnimalsHens,
1157     RWIProtocolTestCastedAnimalsCrows,
1158     RWIProtocolTestCastedAnimalsFlamingos,
1159 };
1160
1161
1162 __attribute__((visibility ("default")))
1163 @interface RWIProtocolTestTypeNeedingCast : RWIProtocolJSONObject
1164 - (instancetype)initWithString:(NSString *)string number:(int)number animals:(RWIProtocolTestCastedAnimals)animals identifier:(int)identifier tree:(RWIProtocolTestRecursiveObject1 *)tree;
1165 /* required */ @property (nonatomic, copy) NSString *string;
1166 /* required */ @property (nonatomic, assign) int number;
1167 /* required */ @property (nonatomic, assign) RWIProtocolTestCastedAnimals animals;
1168 /* required */ @property (nonatomic, assign) int identifier;
1169 /* required */ @property (nonatomic, retain) RWIProtocolTestRecursiveObject1 *tree;
1170 @end
1171
1172 __attribute__((visibility ("default")))
1173 @interface RWIProtocolTestRecursiveObject1 : RWIProtocolJSONObject
1174 /* optional */ @property (nonatomic, retain) RWIProtocolTestRecursiveObject2 *obj;
1175 @end
1176
1177 __attribute__((visibility ("default")))
1178 @interface RWIProtocolTestRecursiveObject2 : RWIProtocolJSONObject
1179 /* optional */ @property (nonatomic, retain) RWIProtocolTestRecursiveObject1 *obj;
1180 @end
1181
1182
1183
1184
1185
1186
1187 ### End File: RWIProtocol.h
1188
1189 ### Begin File: RWIProtocolTypes.mm
1190 /*
1191  * Copyright (C) 2013 Google Inc. All rights reserved.
1192  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
1193  * Copyright (C) 2014 University of Washington. All rights reserved.
1194  *
1195  * Redistribution and use in source and binary forms, with or without
1196  * modification, are permitted provided that the following conditions
1197  * are met:
1198  * 1. Redistributions of source code must retain the above copyright
1199  *    notice, this list of conditions and the following disclaimer.
1200  * 2. Redistributions in binary form must reproduce the above copyright
1201  *    notice, this list of conditions and the following disclaimer in the
1202  *    documentation and/or other materials provided with the distribution.
1203  *
1204  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1205  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1206  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1207  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1208  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1209  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1210  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1211  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1212  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1213  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1214  * THE POSSIBILITY OF SUCH DAMAGE.
1215  */
1216
1217 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
1218 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1219
1220 #import "config.h"
1221 #import "RWIProtocolInternal.h"
1222
1223 #import "RWIProtocolEnumConversionHelpers.h"
1224 #import <JavaScriptCore/InspectorValues.h>
1225 #import <wtf/Assertions.h>
1226
1227 using namespace Inspector;
1228
1229
1230 @implementation RWIProtocolTestTypeNeedingCast
1231
1232 - (instancetype)initWithString:(NSString *)string number:(int)number animals:(RWIProtocolTestCastedAnimals)animals identifier:(int)identifier tree:(RWIProtocolTestRecursiveObject1 *)tree;
1233 {
1234     self = [super init];
1235     if (!self)
1236         return nil;
1237
1238     THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(string, @"string");
1239     THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(tree, @"tree");
1240
1241     self.string = string;
1242     self.number = number;
1243     self.animals = animals;
1244     self.identifier = identifier;
1245     self.tree = tree;
1246
1247     return self;
1248 }
1249
1250 - (void)setString:(NSString *)string
1251 {
1252     [super setString:string forKey:@"string"];
1253 }
1254
1255 - (NSString *)string
1256 {
1257     return [super stringForKey:@"string"];
1258 }
1259
1260 - (void)setNumber:(int)number
1261 {
1262     [super setInteger:number forKey:@"number"];
1263 }
1264
1265 - (int)number
1266 {
1267     return [super integerForKey:@"number"];
1268 }
1269
1270 - (void)setAnimals:(RWIProtocolTestCastedAnimals)animals
1271 {
1272     [super setString:toProtocolString(animals) forKey:@"animals"];
1273 }
1274
1275 - (RWIProtocolTestCastedAnimals)animals
1276 {
1277     return fromProtocolString<RWIProtocolTestCastedAnimals>([super stringForKey:@"animals"]);
1278 }
1279
1280 - (void)setIdentifier:(int)identifier
1281 {
1282     [super setInteger:identifier forKey:@"id"];
1283 }
1284
1285 - (int)identifier
1286 {
1287     return [super integerForKey:@"id"];
1288 }
1289
1290 - (void)setTree:(RWIProtocolTestRecursiveObject1 *)tree
1291 {
1292     [super setObject:tree forKey:@"tree"];
1293 }
1294
1295 - (RWIProtocolTestRecursiveObject1 *)tree
1296 {
1297     return (RWIProtocolTestRecursiveObject1 *)[super objectForKey:@"tree"];
1298 }
1299
1300 @end
1301
1302 @implementation RWIProtocolTestRecursiveObject1
1303
1304 - (void)setObj:(RWIProtocolTestRecursiveObject2 *)obj
1305 {
1306     [super setObject:obj forKey:@"obj"];
1307 }
1308
1309 - (RWIProtocolTestRecursiveObject2 *)obj
1310 {
1311     return (RWIProtocolTestRecursiveObject2 *)[super objectForKey:@"obj"];
1312 }
1313
1314 @end
1315
1316 @implementation RWIProtocolTestRecursiveObject2
1317
1318 - (void)setObj:(RWIProtocolTestRecursiveObject1 *)obj
1319 {
1320     [super setObject:obj forKey:@"obj"];
1321 }
1322
1323 - (RWIProtocolTestRecursiveObject1 *)obj
1324 {
1325     return (RWIProtocolTestRecursiveObject1 *)[super objectForKey:@"obj"];
1326 }
1327
1328 @end
1329
1330
1331 ### End File: RWIProtocolTypes.mm
1332
1333 ### Begin File: RWIProtocolInternal.h
1334 /*
1335  * Copyright (C) 2013 Google Inc. All rights reserved.
1336  * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
1337  * Copyright (C) 2014 University of Washington. All rights reserved.
1338  *
1339  * Redistribution and use in source and binary forms, with or without
1340  * modification, are permitted provided that the following conditions
1341  * are met:
1342  * 1. Redistributions of source code must retain the above copyright
1343  *    notice, this list of conditions and the following disclaimer.
1344  * 2. Redistributions in binary form must reproduce the above copyright
1345  *    notice, this list of conditions and the following disclaimer in the
1346  *    documentation and/or other materials provided with the distribution.
1347  *
1348  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1349  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1350  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1351  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1352  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1353  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1354  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1355  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1356  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1357  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1358  * THE POSSIBILITY OF SUCH DAMAGE.
1359  */
1360
1361 // DO NOT EDIT THIS FILE. It is automatically generated from type-requiring-runtime-casts.json
1362 // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
1363
1364 #import "RWIProtocol.h"
1365 #import "RWIProtocolJSONObjectInternal.h"
1366 #import <JavaScriptCore/AugmentableInspectorController.h>
1367 #import <JavaScriptCore/InspectorValues.h>
1368
1369
1370
1371
1372 ### End File: RWIProtocolInternal.h