datawire_mdk 2.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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