datawire_mdk 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,818 @@
1
+ # Quark 1.0.406 run at 2016-08-31 13:21:53.028839
2
+ module Quark
3
+ require "quark"
4
+ def self.mdk_discovery; MdkDiscovery; end
5
+ module MdkDiscovery
6
+ def self.protocol; Protocol; end
7
+ module Protocol
8
+ require "datawire-quark-core"
9
+ require_relative '../quark/reflect' # 0 ('quark',) ('mdk_discovery',)
10
+ require_relative '../mdk_discovery' # 0 () ('mdk_discovery',)
11
+ require_relative '../mdk_runtime/actors' # 0 ('mdk_runtime',) ('mdk_discovery',)
12
+ require_relative '../mdk_runtime' # 0 () ('mdk_discovery',)
13
+ require_relative '../datawire_mdk_md' # 0 () ('mdk_discovery',)
14
+ require_relative '../mdk_protocol' # 0 () ('mdk_discovery',)
15
+ require_relative '../quark' # 0 () ('mdk_discovery',)
16
+
17
+
18
+ def self.DiscoClientFactory; DiscoClientFactory; end
19
+ ##
20
+ # Create a Discovery service client using standard MDK env variables and
21
+ # register it with the MDK.
22
+ #
23
+
24
+ class DiscoClientFactory < ::DatawireQuarkCore::QuarkObject
25
+ attr_accessor :token
26
+ extend ::DatawireQuarkCore::Static
27
+
28
+ static mdk_discovery_protocol_DiscoClientFactory_ref: -> { nil }
29
+
30
+
31
+
32
+ def initialize(token)
33
+
34
+ self.__init_fields__
35
+ (self).token = token
36
+
37
+ nil
38
+ end
39
+
40
+
41
+
42
+
43
+ def create(subscriber, runtime)
44
+
45
+ ddu = runtime.getEnvVarsService().var("MDK_DISCOVERY_URL")
46
+ url = ddu.orElseGet("wss://discovery.datawire.io/ws/v1")
47
+ return ::Quark.mdk_discovery.protocol.DiscoClient.new(subscriber, @token, url, runtime)
48
+
49
+ nil
50
+ end
51
+
52
+ def isRegistrar()
53
+
54
+ return true
55
+
56
+ nil
57
+ end
58
+
59
+ def _getClass()
60
+
61
+ return "mdk_discovery.protocol.DiscoClientFactory"
62
+
63
+ nil
64
+ end
65
+
66
+ def _getField(name)
67
+
68
+ if ((name) == ("token"))
69
+ return (self).token
70
+ end
71
+ return nil
72
+
73
+ nil
74
+ end
75
+
76
+ def _setField(name, value)
77
+
78
+ if ((name) == ("token"))
79
+ (self).token = ::DatawireQuarkCore.cast(value) { ::String }
80
+ end
81
+
82
+ nil
83
+ end
84
+
85
+ def __init_fields__()
86
+
87
+ self.token = nil
88
+
89
+ nil
90
+ end
91
+
92
+
93
+ end
94
+ DiscoClientFactory.unlazy_statics
95
+
96
+ def self.DiscoClient; DiscoClient; end
97
+ ##
98
+ # A source of discovery information that talks to Datawire Discovery server.
99
+ #
100
+ # Also supports registering discovery information with the server.
101
+ #
102
+
103
+ class DiscoClient < ::Quark.mdk_protocol.WSClient
104
+ attr_accessor :_started, :_token, :_url, :_failurePolicyFactory, :_dispatcher, :_subscriber, :registered, :dlog
105
+ extend ::DatawireQuarkCore::Static
106
+
107
+ static mdk_discovery_protocol_DiscoClient_ref: -> { nil }
108
+
109
+
110
+
111
+ def initialize(subscriber, token, url, runtime)
112
+
113
+ super(runtime)
114
+ (self)._subscriber = subscriber
115
+ (self)._failurePolicyFactory = ::DatawireQuarkCore.cast((runtime).dependencies.getService("failurepolicy_factory")) { ::Quark.mdk_discovery.FailurePolicyFactory }
116
+ (self)._token = token
117
+ (self)._url = url
118
+
119
+ nil
120
+ end
121
+
122
+
123
+
124
+
125
+ def onStart(dispatcher)
126
+
127
+ (self)._dispatcher = dispatcher
128
+ (self)._started = true
129
+ method(:onStart).super_method.call(dispatcher)
130
+
131
+ nil
132
+ end
133
+
134
+ def onStop()
135
+
136
+ (self)._started = false
137
+ method(:onStop).super_method.call()
138
+
139
+ nil
140
+ end
141
+
142
+ def onMessage(origin, message)
143
+
144
+ if (((::Quark.quark.reflect.QuarkClass.get(::DatawireQuarkCore._getClass(message))).id) == ("mdk_discovery.RegisterNode"))
145
+ register = ::DatawireQuarkCore.cast(message) { ::Quark.mdk_discovery.RegisterNode }
146
+ self._register((register).node)
147
+ return
148
+ end
149
+ method(:onMessage).super_method.call(origin, message)
150
+
151
+ nil
152
+ end
153
+
154
+ def url()
155
+
156
+ return (self)._url
157
+
158
+ nil
159
+ end
160
+
161
+ def token()
162
+
163
+ return (self)._token
164
+
165
+ nil
166
+ end
167
+
168
+ def isStarted()
169
+
170
+ return (self)._started
171
+
172
+ nil
173
+ end
174
+
175
+ ##
176
+ # Register a node with the remote Discovery server.
177
+
178
+ def _register(node)
179
+
180
+ service = (node).service
181
+ if (!((@registered).key?(service)))
182
+ (@registered)[service] = (::Quark.mdk_discovery.Cluster.new((self)._failurePolicyFactory))
183
+ end
184
+ (@registered)[service].add(node)
185
+ if (self.isConnected())
186
+ self.active(node)
187
+ end
188
+
189
+ nil
190
+ end
191
+
192
+ def active(node)
193
+
194
+ active = ::Quark.mdk_discovery.protocol.Active.new()
195
+ (active).node = node
196
+ (active).ttl = (self).ttl
197
+ (self).dispatcher.tell(self, active.encode(), (self).sock)
198
+ @dlog.info(("active ") + (node.toString()))
199
+
200
+ nil
201
+ end
202
+
203
+ def expire(node)
204
+
205
+ expire = ::Quark.mdk_discovery.protocol.Expire.new()
206
+ (expire).node = node
207
+ (self).dispatcher.tell(self, expire.encode(), (self).sock)
208
+ @dlog.info(("expire ") + (node.toString()))
209
+
210
+ nil
211
+ end
212
+
213
+ def resolve(node)
214
+
215
+ nil
216
+
217
+ nil
218
+ end
219
+
220
+ def onActive(active)
221
+
222
+ (self)._dispatcher.tell(self, ::Quark.mdk_discovery.NodeActive.new((active).node), (self)._subscriber)
223
+
224
+ nil
225
+ end
226
+
227
+ def onExpire(expire)
228
+
229
+ (self)._dispatcher.tell(self, ::Quark.mdk_discovery.NodeExpired.new((expire).node), (self)._subscriber)
230
+
231
+ nil
232
+ end
233
+
234
+ def onClear(reset)
235
+
236
+ nil
237
+
238
+ nil
239
+ end
240
+
241
+ def startup()
242
+
243
+ self.heartbeat()
244
+
245
+ nil
246
+ end
247
+
248
+ def heartbeat()
249
+
250
+ services = ::DatawireQuarkCore::List.new(((self).registered).keys)
251
+ idx = 0
252
+ while ((idx) < ((services).size)) do
253
+ jdx = 0
254
+ nodes = (((self).registered)[(services)[idx]]).nodes
255
+ while ((jdx) < ((nodes).size)) do
256
+ self.active((nodes)[jdx])
257
+ jdx = (jdx) + (1)
258
+ end
259
+ idx = (idx) + (1)
260
+ end
261
+
262
+ nil
263
+ end
264
+
265
+ def shutdown()
266
+
267
+ services = ::DatawireQuarkCore::List.new(((self).registered).keys)
268
+ idx = 0
269
+ while ((idx) < ((services).size)) do
270
+ jdx = 0
271
+ nodes = (((self).registered)[(services)[idx]]).nodes
272
+ while ((jdx) < ((nodes).size)) do
273
+ self.expire((nodes)[jdx])
274
+ jdx = (jdx) + (1)
275
+ end
276
+ idx = (idx) + (1)
277
+ end
278
+
279
+ nil
280
+ end
281
+
282
+ def onWSMessage(message)
283
+
284
+ event = ::Quark.mdk_discovery.protocol.DiscoveryEvent.decode(message)
285
+ if ((event) == (nil))
286
+ return
287
+ end
288
+ event.dispatch(self)
289
+
290
+ nil
291
+ end
292
+
293
+ def _getClass()
294
+
295
+ return "mdk_discovery.protocol.DiscoClient"
296
+
297
+ nil
298
+ end
299
+
300
+ def _getField(name)
301
+
302
+ if ((name) == ("logger"))
303
+ return (self).logger
304
+ end
305
+ if ((name) == ("firstDelay"))
306
+ return (self).firstDelay
307
+ end
308
+ if ((name) == ("maxDelay"))
309
+ return (self).maxDelay
310
+ end
311
+ if ((name) == ("reconnectDelay"))
312
+ return (self).reconnectDelay
313
+ end
314
+ if ((name) == ("ttl"))
315
+ return (self).ttl
316
+ end
317
+ if ((name) == ("tick"))
318
+ return (self).tick
319
+ end
320
+ if ((name) == ("sock"))
321
+ return (self).sock
322
+ end
323
+ if ((name) == ("sockUrl"))
324
+ return (self).sockUrl
325
+ end
326
+ if ((name) == ("lastConnectAttempt"))
327
+ return (self).lastConnectAttempt
328
+ end
329
+ if ((name) == ("lastHeartbeat"))
330
+ return (self).lastHeartbeat
331
+ end
332
+ if ((name) == ("timeService"))
333
+ return (self).timeService
334
+ end
335
+ if ((name) == ("schedulingActor"))
336
+ return (self).schedulingActor
337
+ end
338
+ if ((name) == ("websockets"))
339
+ return (self).websockets
340
+ end
341
+ if ((name) == ("dispatcher"))
342
+ return (self).dispatcher
343
+ end
344
+ if ((name) == ("_started"))
345
+ return (self)._started
346
+ end
347
+ if ((name) == ("_token"))
348
+ return (self)._token
349
+ end
350
+ if ((name) == ("_url"))
351
+ return (self)._url
352
+ end
353
+ if ((name) == ("_failurePolicyFactory"))
354
+ return (self)._failurePolicyFactory
355
+ end
356
+ if ((name) == ("_dispatcher"))
357
+ return (self)._dispatcher
358
+ end
359
+ if ((name) == ("_subscriber"))
360
+ return (self)._subscriber
361
+ end
362
+ if ((name) == ("registered"))
363
+ return (self).registered
364
+ end
365
+ if ((name) == ("dlog"))
366
+ return (self).dlog
367
+ end
368
+ return nil
369
+
370
+ nil
371
+ end
372
+
373
+ def _setField(name, value)
374
+
375
+ if ((name) == ("logger"))
376
+ (self).logger = value
377
+ end
378
+ if ((name) == ("firstDelay"))
379
+ (self).firstDelay = ::DatawireQuarkCore.cast(value) { ::Float }
380
+ end
381
+ if ((name) == ("maxDelay"))
382
+ (self).maxDelay = ::DatawireQuarkCore.cast(value) { ::Float }
383
+ end
384
+ if ((name) == ("reconnectDelay"))
385
+ (self).reconnectDelay = ::DatawireQuarkCore.cast(value) { ::Float }
386
+ end
387
+ if ((name) == ("ttl"))
388
+ (self).ttl = ::DatawireQuarkCore.cast(value) { ::Float }
389
+ end
390
+ if ((name) == ("tick"))
391
+ (self).tick = ::DatawireQuarkCore.cast(value) { ::Float }
392
+ end
393
+ if ((name) == ("sock"))
394
+ (self).sock = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.WSActor }
395
+ end
396
+ if ((name) == ("sockUrl"))
397
+ (self).sockUrl = ::DatawireQuarkCore.cast(value) { ::String }
398
+ end
399
+ if ((name) == ("lastConnectAttempt"))
400
+ (self).lastConnectAttempt = ::DatawireQuarkCore.cast(value) { ::Integer }
401
+ end
402
+ if ((name) == ("lastHeartbeat"))
403
+ (self).lastHeartbeat = ::DatawireQuarkCore.cast(value) { ::Integer }
404
+ end
405
+ if ((name) == ("timeService"))
406
+ (self).timeService = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.Time }
407
+ end
408
+ if ((name) == ("schedulingActor"))
409
+ (self).schedulingActor = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.Actor }
410
+ end
411
+ if ((name) == ("websockets"))
412
+ (self).websockets = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.WebSockets }
413
+ end
414
+ if ((name) == ("dispatcher"))
415
+ (self).dispatcher = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.MessageDispatcher }
416
+ end
417
+ if ((name) == ("_started"))
418
+ (self)._started = ::DatawireQuarkCore.cast(value) { ::Object }
419
+ end
420
+ if ((name) == ("_token"))
421
+ (self)._token = ::DatawireQuarkCore.cast(value) { ::String }
422
+ end
423
+ if ((name) == ("_url"))
424
+ (self)._url = ::DatawireQuarkCore.cast(value) { ::String }
425
+ end
426
+ if ((name) == ("_failurePolicyFactory"))
427
+ (self)._failurePolicyFactory = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_discovery.FailurePolicyFactory }
428
+ end
429
+ if ((name) == ("_dispatcher"))
430
+ (self)._dispatcher = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.MessageDispatcher }
431
+ end
432
+ if ((name) == ("_subscriber"))
433
+ (self)._subscriber = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.Actor }
434
+ end
435
+ if ((name) == ("registered"))
436
+ (self).registered = ::DatawireQuarkCore.cast(value) { ::Hash }
437
+ end
438
+ if ((name) == ("dlog"))
439
+ (self).dlog = value
440
+ end
441
+
442
+ nil
443
+ end
444
+
445
+ def __init_fields__()
446
+
447
+ super
448
+ self._started = false
449
+ self._token = nil
450
+ self._url = nil
451
+ self._failurePolicyFactory = nil
452
+ self._dispatcher = nil
453
+ self._subscriber = nil
454
+ self.registered = ::Hash.new()
455
+ self.dlog = ::Quark.quark._getLogger("discovery")
456
+
457
+ nil
458
+ end
459
+
460
+
461
+ end
462
+ DiscoClient.unlazy_statics
463
+
464
+ def self.DiscoHandler; DiscoHandler; end
465
+ class DiscoHandler < ::DatawireQuarkCore::QuarkObject
466
+ extend ::DatawireQuarkCore::Static
467
+
468
+ static mdk_discovery_protocol_DiscoHandler_ref: -> { nil }
469
+
470
+
471
+
472
+ def initialize()
473
+ self.__init_fields__
474
+
475
+ nil
476
+ end
477
+
478
+
479
+
480
+
481
+ def onActive(active)
482
+ raise NotImplementedError, '`DiscoHandler.onActive` is an abstract method'
483
+
484
+ nil
485
+ end
486
+
487
+ def onExpire(expire)
488
+ raise NotImplementedError, '`DiscoHandler.onExpire` is an abstract method'
489
+
490
+ nil
491
+ end
492
+
493
+ def onClear(reset)
494
+ raise NotImplementedError, '`DiscoHandler.onClear` is an abstract method'
495
+
496
+ nil
497
+ end
498
+
499
+ def __init_fields__()
500
+
501
+
502
+ nil
503
+ end
504
+
505
+
506
+ end
507
+ DiscoHandler.unlazy_statics
508
+
509
+ def self.DiscoveryEvent; DiscoveryEvent; end
510
+ class DiscoveryEvent < ::Quark.mdk_protocol.ProtocolEvent
511
+ extend ::DatawireQuarkCore::Static
512
+
513
+ static mdk_discovery_protocol_DiscoveryEvent_ref: -> { nil }
514
+
515
+
516
+
517
+ def initialize()
518
+
519
+ super()
520
+
521
+ nil
522
+ end
523
+
524
+
525
+
526
+
527
+ def self.construct(type)
528
+
529
+ result = ::Quark.mdk_protocol.ProtocolEvent.construct(type)
530
+ if ((result) != (nil))
531
+ return result
532
+ end
533
+ if (::Quark.mdk_discovery.protocol.Active._discriminator.matches(type))
534
+ return ::Quark.mdk_discovery.protocol.Active.new()
535
+ end
536
+ if (::Quark.mdk_discovery.protocol.Expire._discriminator.matches(type))
537
+ return ::Quark.mdk_discovery.protocol.Expire.new()
538
+ end
539
+ if (::Quark.mdk_discovery.protocol.Clear._discriminator.matches(type))
540
+ return ::Quark.mdk_discovery.protocol.Clear.new()
541
+ end
542
+ return ::DatawireQuarkCore.cast(nil) { ::Quark.mdk_protocol.ProtocolEvent }
543
+
544
+ nil
545
+ end
546
+
547
+ def self.decode(message)
548
+
549
+ return ::DatawireQuarkCore.cast(::Quark.mdk_protocol.Serializable.decodeClassName("mdk_discovery.protocol.DiscoveryEvent", message)) { ::Quark.mdk_protocol.ProtocolEvent }
550
+
551
+ nil
552
+ end
553
+
554
+ def dispatch(handler)
555
+
556
+ self.dispatchDiscoveryEvent(::DatawireQuarkCore.cast(handler) { ::Quark.mdk_discovery.protocol.DiscoHandler })
557
+
558
+ nil
559
+ end
560
+
561
+ def dispatchDiscoveryEvent(handler)
562
+ raise NotImplementedError, '`DiscoveryEvent.dispatchDiscoveryEvent` is an abstract method'
563
+
564
+ nil
565
+ end
566
+
567
+ def _getClass()
568
+
569
+ return "mdk_discovery.protocol.DiscoveryEvent"
570
+
571
+ nil
572
+ end
573
+
574
+ def _getField(name)
575
+
576
+ return nil
577
+
578
+ nil
579
+ end
580
+
581
+ def _setField(name, value)
582
+
583
+ nil
584
+
585
+ nil
586
+ end
587
+
588
+ def __init_fields__()
589
+
590
+ super
591
+
592
+ nil
593
+ end
594
+
595
+
596
+ end
597
+ DiscoveryEvent.unlazy_statics
598
+
599
+ def self.Active; Active; end
600
+ class Active < ::Quark.mdk_discovery.protocol.DiscoveryEvent
601
+ attr_accessor :node, :ttl
602
+ extend ::DatawireQuarkCore::Static
603
+
604
+ static _discriminator: -> { ::Quark.mdk_protocol.anyof(::DatawireQuarkCore::List.new(["active", "discovery.protocol.Active"])) }
605
+ static mdk_discovery_protocol_Active_ref: -> { nil }
606
+
607
+
608
+
609
+ def initialize()
610
+
611
+ super()
612
+
613
+ nil
614
+ end
615
+
616
+
617
+
618
+
619
+ def dispatchDiscoveryEvent(handler)
620
+
621
+ handler.onActive(self)
622
+
623
+ nil
624
+ end
625
+
626
+ def _getClass()
627
+
628
+ return "mdk_discovery.protocol.Active"
629
+
630
+ nil
631
+ end
632
+
633
+ def _getField(name)
634
+
635
+ if ((name) == ("_discriminator"))
636
+ return ::Quark.mdk_discovery.protocol.Active._discriminator
637
+ end
638
+ if ((name) == ("node"))
639
+ return (self).node
640
+ end
641
+ if ((name) == ("ttl"))
642
+ return (self).ttl
643
+ end
644
+ return nil
645
+
646
+ nil
647
+ end
648
+
649
+ def _setField(name, value)
650
+
651
+ if ((name) == ("_discriminator"))
652
+ ::Quark.mdk_discovery.protocol.Active._discriminator = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_protocol.Discriminator }
653
+ end
654
+ if ((name) == ("node"))
655
+ (self).node = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_discovery.Node }
656
+ end
657
+ if ((name) == ("ttl"))
658
+ (self).ttl = ::DatawireQuarkCore.cast(value) { ::Float }
659
+ end
660
+
661
+ nil
662
+ end
663
+
664
+ def __init_fields__()
665
+
666
+ super
667
+ self.node = nil
668
+ self.ttl = nil
669
+
670
+ nil
671
+ end
672
+
673
+
674
+ end
675
+ Active.unlazy_statics
676
+
677
+ def self.Expire; Expire; end
678
+ ##
679
+ # Expire a node.
680
+
681
+ class Expire < ::Quark.mdk_discovery.protocol.DiscoveryEvent
682
+ attr_accessor :node
683
+ extend ::DatawireQuarkCore::Static
684
+
685
+ static _discriminator: -> { ::Quark.mdk_protocol.anyof(::DatawireQuarkCore::List.new(["expire", "discovery.protocol.Expire"])) }
686
+ static mdk_discovery_protocol_Expire_ref: -> { nil }
687
+
688
+
689
+
690
+ def initialize()
691
+
692
+ super()
693
+
694
+ nil
695
+ end
696
+
697
+
698
+
699
+
700
+ def dispatchDiscoveryEvent(handler)
701
+
702
+ handler.onExpire(self)
703
+
704
+ nil
705
+ end
706
+
707
+ def _getClass()
708
+
709
+ return "mdk_discovery.protocol.Expire"
710
+
711
+ nil
712
+ end
713
+
714
+ def _getField(name)
715
+
716
+ if ((name) == ("_discriminator"))
717
+ return ::Quark.mdk_discovery.protocol.Expire._discriminator
718
+ end
719
+ if ((name) == ("node"))
720
+ return (self).node
721
+ end
722
+ return nil
723
+
724
+ nil
725
+ end
726
+
727
+ def _setField(name, value)
728
+
729
+ if ((name) == ("_discriminator"))
730
+ ::Quark.mdk_discovery.protocol.Expire._discriminator = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_protocol.Discriminator }
731
+ end
732
+ if ((name) == ("node"))
733
+ (self).node = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_discovery.Node }
734
+ end
735
+
736
+ nil
737
+ end
738
+
739
+ def __init_fields__()
740
+
741
+ super
742
+ self.node = nil
743
+
744
+ nil
745
+ end
746
+
747
+
748
+ end
749
+ Expire.unlazy_statics
750
+
751
+ def self.Clear; Clear; end
752
+ ##
753
+ # Expire all nodes.
754
+
755
+ class Clear < ::Quark.mdk_discovery.protocol.DiscoveryEvent
756
+ extend ::DatawireQuarkCore::Static
757
+
758
+ static _discriminator: -> { ::Quark.mdk_protocol.anyof(::DatawireQuarkCore::List.new(["clear", "discovery.protocol.Clear"])) }
759
+ static mdk_discovery_protocol_Clear_ref: -> { nil }
760
+
761
+
762
+
763
+ def initialize()
764
+
765
+ super()
766
+
767
+ nil
768
+ end
769
+
770
+
771
+
772
+
773
+ def dispatchDiscoveryEvent(handler)
774
+
775
+ handler.onClear(self)
776
+
777
+ nil
778
+ end
779
+
780
+ def _getClass()
781
+
782
+ return "mdk_discovery.protocol.Clear"
783
+
784
+ nil
785
+ end
786
+
787
+ def _getField(name)
788
+
789
+ if ((name) == ("_discriminator"))
790
+ return ::Quark.mdk_discovery.protocol.Clear._discriminator
791
+ end
792
+ return nil
793
+
794
+ nil
795
+ end
796
+
797
+ def _setField(name, value)
798
+
799
+ if ((name) == ("_discriminator"))
800
+ ::Quark.mdk_discovery.protocol.Clear._discriminator = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_protocol.Discriminator }
801
+ end
802
+
803
+ nil
804
+ end
805
+
806
+ def __init_fields__()
807
+
808
+ super
809
+
810
+ nil
811
+ end
812
+
813
+
814
+ end
815
+ Clear.unlazy_statics
816
+ end # module Protocol
817
+ end # module MdkDiscovery
818
+ end # module Quark