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