datawire_mdk 2.0.36 → 2.0.37
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.
- checksums.yaml +4 -4
- data/lib/datawire_mdk_md.rb +907 -24
- data/lib/mdk.rb +1 -1
- data/lib/mdk_discovery.rb +1 -1
- data/lib/mdk_discovery/protocol.rb +1 -1
- data/lib/mdk_discovery/synapse.rb +1 -1
- data/lib/mdk_introspection.rb +1 -1
- data/lib/mdk_introspection/aws.rb +1 -1
- data/lib/mdk_introspection/kubernetes.rb +1 -1
- data/lib/mdk_metrics.rb +1 -1
- data/lib/mdk_protocol.rb +2 -2
- data/lib/mdk_rtp.rb +1 -1
- data/lib/mdk_runtime.rb +13 -9
- data/lib/mdk_runtime/actors.rb +240 -8
- data/lib/mdk_runtime/files.rb +1 -1
- data/lib/mdk_runtime/promise.rb +1 -1
- data/lib/mdk_tracing.rb +1 -1
- data/lib/mdk_tracing/api.rb +1 -1
- data/lib/mdk_tracing/protocol.rb +1 -1
- data/lib/mdk_util.rb +1 -1
- data/lib/quark.rb +1 -1
- data/lib/quark/behaviors.rb +1 -1
- data/lib/quark/concurrent.rb +1 -1
- data/lib/quark/error.rb +1 -1
- data/lib/quark/logging.rb +1 -1
- data/lib/quark/mock.rb +1 -1
- data/lib/quark/os.rb +1 -1
- data/lib/quark/reflect.rb +1 -1
- data/lib/quark/spi.rb +1 -1
- data/lib/quark/spi_api.rb +1 -1
- data/lib/quark/spi_api_tracing.rb +1 -1
- data/lib/quark/test.rb +1 -1
- metadata +2 -2
data/lib/mdk.rb
CHANGED
data/lib/mdk_discovery.rb
CHANGED
data/lib/mdk_introspection.rb
CHANGED
data/lib/mdk_metrics.rb
CHANGED
data/lib/mdk_protocol.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Quark 1.0.452 run at 2016-11-
|
1
|
+
# Quark 1.0.452 run at 2016-11-28 14:25:58.554098
|
2
2
|
module Quark
|
3
3
|
require "quark"
|
4
4
|
def self.mdk_protocol; MdkProtocol; end
|
@@ -1123,7 +1123,7 @@ class OpenCloseSubscriber < ::DatawireQuarkCore::QuarkObject
|
|
1123
1123
|
def onWSConnected(websocket)
|
1124
1124
|
|
1125
1125
|
open = ::Quark.mdk_protocol.Open.new()
|
1126
|
-
(open).mdkVersion = "2.0.
|
1126
|
+
(open).mdkVersion = "2.0.37"
|
1127
1127
|
(open).nodeId = (self)._node_id
|
1128
1128
|
(open).environment = @_environment
|
1129
1129
|
(self)._dispatcher.tell(self, open.encode(), websocket)
|
data/lib/mdk_rtp.rb
CHANGED
data/lib/mdk_runtime.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Quark 1.0.452 run at 2016-11-
|
1
|
+
# Quark 1.0.452 run at 2016-11-28 14:25:58.554098
|
2
2
|
module Quark
|
3
3
|
require "quark"
|
4
4
|
def self.mdk_runtime; MdkRuntime; end
|
@@ -232,7 +232,7 @@ class MDKRuntime < ::DatawireQuarkCore::QuarkObject
|
|
232
232
|
def __init_fields__()
|
233
233
|
|
234
234
|
self.dependencies = ::Quark.mdk_runtime.Dependencies.new()
|
235
|
-
self.dispatcher =
|
235
|
+
self.dispatcher = nil
|
236
236
|
|
237
237
|
nil
|
238
238
|
end
|
@@ -984,18 +984,22 @@ class QuarkRuntimeWSActor < ::DatawireQuarkCore::QuarkObject
|
|
984
984
|
|
985
985
|
self.logPrologue("ws onMessage (actor message)")
|
986
986
|
self.logTS((" message is from ") + ((origin).to_s))
|
987
|
-
|
987
|
+
messageId = (::Quark.quark.reflect.QuarkClass.get(::DatawireQuarkCore._getClass(message))).id
|
988
|
+
if (((messageId) == ("quark.String")) && (((self).state) == ("CONNECTED")))
|
988
989
|
self.logTS((" send-ish, message is: ") + ((message).to_s))
|
989
990
|
::Quark.mdk_runtime.log_to_file(("sending: ") + (::DatawireQuarkCore.cast(message) { ::String }))
|
990
991
|
(self).socket.send(::DatawireQuarkCore.cast(message) { ::String })
|
991
992
|
return
|
992
993
|
end
|
993
|
-
if (((
|
994
|
+
if (((messageId) == ("mdk_runtime.WSClose")) && (((self).state) == ("CONNECTED")))
|
994
995
|
self.logTS(" close-ish, switching to DISCONNECTING state")
|
995
996
|
(self).state = "DISCONNECTING"
|
996
997
|
(self).socket.close()
|
997
998
|
return
|
998
999
|
end
|
1000
|
+
if (((messageId) == ("mdk_runtime.WSClose")) && (((self).state) == ("CONNECTING")))
|
1001
|
+
(self).state = "DISCONNECTING"
|
1002
|
+
end
|
999
1003
|
@logger.warn(((("ws onMessage got unhandled message: ") + ((::Quark.quark.reflect.QuarkClass.get(::DatawireQuarkCore._getClass(message))).id)) + (" in state ")) + ((self).state))
|
1000
1004
|
|
1001
1005
|
nil
|
@@ -1004,8 +1008,9 @@ class QuarkRuntimeWSActor < ::DatawireQuarkCore::QuarkObject
|
|
1004
1008
|
def onWSConnected(socket)
|
1005
1009
|
|
1006
1010
|
self.logPrologue("onWSConnected")
|
1007
|
-
if (((self).state)
|
1008
|
-
self.logTS("Connection event
|
1011
|
+
if (((self).state) != ("CONNECTING"))
|
1012
|
+
self.logTS((("Connection event when transitioned out of CONNECTING.") + ("Current state: ")) + ((self).state))
|
1013
|
+
socket.close()
|
1009
1014
|
return
|
1010
1015
|
end
|
1011
1016
|
(self).state = "CONNECTED"
|
@@ -1413,9 +1418,6 @@ class QuarkRuntimeTime < ::DatawireQuarkCore::QuarkObject
|
|
1413
1418
|
end
|
1414
1419
|
sched = ::DatawireQuarkCore.cast(msg) { ::Quark.mdk_runtime.Schedule }
|
1415
1420
|
seconds = (sched).seconds
|
1416
|
-
if ((seconds) == (0.0))
|
1417
|
-
seconds = 0.1
|
1418
|
-
end
|
1419
1421
|
::Quark.quark.concurrent.Context.runtime().schedule(::Quark.mdk_runtime._ScheduleTask.new(self, origin, (sched).event), seconds)
|
1420
1422
|
|
1421
1423
|
nil
|
@@ -1537,6 +1539,7 @@ RealEnvVars.unlazy_statics
|
|
1537
1539
|
def self.defaultRuntime()
|
1538
1540
|
|
1539
1541
|
runtime = ::Quark.mdk_runtime.MDKRuntime.new()
|
1542
|
+
(runtime).dispatcher = ::Quark.mdk_runtime.actors.MessageDispatcher.new(::Quark.mdk_runtime.actors._QuarkRuntimeLaterCaller.new())
|
1540
1543
|
(runtime).dependencies.registerService("envvar", ::Quark.mdk_runtime.RealEnvVars.new())
|
1541
1544
|
timeService = ::Quark.mdk_runtime.QuarkRuntimeTime.new()
|
1542
1545
|
websockets = ::Quark.mdk_runtime.QuarkRuntimeWebSockets.new()
|
@@ -2210,6 +2213,7 @@ def self.fakeRuntime()
|
|
2210
2213
|
|
2211
2214
|
runtime = ::Quark.mdk_runtime.MDKRuntime.new()
|
2212
2215
|
(runtime).dependencies.registerService("envvar", ::Quark.mdk_runtime.FakeEnvVars.new())
|
2216
|
+
(runtime).dispatcher = ::Quark.mdk_runtime.actors.MessageDispatcher.new(::Quark.mdk_runtime.actors._ManualLaterCaller.new())
|
2213
2217
|
timeService = ::Quark.mdk_runtime.FakeTime.new()
|
2214
2218
|
websockets = ::Quark.mdk_runtime.FakeWebSockets.new()
|
2215
2219
|
(runtime).dependencies.registerService("time", timeService)
|
data/lib/mdk_runtime/actors.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Quark 1.0.452 run at 2016-11-
|
1
|
+
# Quark 1.0.452 run at 2016-11-28 14:25:58.554098
|
2
2
|
module Quark
|
3
3
|
require "quark"
|
4
4
|
def self.mdk_runtime; MdkRuntime; end
|
@@ -296,6 +296,194 @@ class StartStopActor < ::DatawireQuarkCore::QuarkObject
|
|
296
296
|
end
|
297
297
|
StartStopActor.unlazy_statics
|
298
298
|
|
299
|
+
def self._CallLater; CallLater; end
|
300
|
+
class CallLater < ::DatawireQuarkCore::QuarkObject
|
301
|
+
extend ::DatawireQuarkCore::Static
|
302
|
+
|
303
|
+
static mdk_runtime_actors__CallLater_ref: -> { nil }
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
def initialize()
|
308
|
+
self.__init_fields__
|
309
|
+
|
310
|
+
nil
|
311
|
+
end
|
312
|
+
|
313
|
+
|
314
|
+
|
315
|
+
|
316
|
+
def schedule(t)
|
317
|
+
raise NotImplementedError, '`_CallLater.schedule` is an abstract method'
|
318
|
+
|
319
|
+
nil
|
320
|
+
end
|
321
|
+
|
322
|
+
def runAll()
|
323
|
+
raise NotImplementedError, '`_CallLater.runAll` is an abstract method'
|
324
|
+
|
325
|
+
nil
|
326
|
+
end
|
327
|
+
|
328
|
+
def __init_fields__()
|
329
|
+
|
330
|
+
|
331
|
+
nil
|
332
|
+
end
|
333
|
+
|
334
|
+
|
335
|
+
end
|
336
|
+
CallLater.unlazy_statics
|
337
|
+
|
338
|
+
def self._QuarkRuntimeLaterCaller; QuarkRuntimeLaterCaller; end
|
339
|
+
class QuarkRuntimeLaterCaller < ::DatawireQuarkCore::QuarkObject
|
340
|
+
extend ::DatawireQuarkCore::Static
|
341
|
+
|
342
|
+
static mdk_runtime_actors__QuarkRuntimeLaterCaller_ref: -> { nil }
|
343
|
+
|
344
|
+
|
345
|
+
|
346
|
+
def initialize()
|
347
|
+
self.__init_fields__
|
348
|
+
|
349
|
+
nil
|
350
|
+
end
|
351
|
+
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
def schedule(t)
|
356
|
+
|
357
|
+
::Quark.quark.concurrent.Context.runtime().schedule(t, 0.0)
|
358
|
+
|
359
|
+
nil
|
360
|
+
end
|
361
|
+
|
362
|
+
def runAll()
|
363
|
+
|
364
|
+
nil
|
365
|
+
|
366
|
+
nil
|
367
|
+
end
|
368
|
+
|
369
|
+
def _getClass()
|
370
|
+
|
371
|
+
return "mdk_runtime.actors._QuarkRuntimeLaterCaller"
|
372
|
+
|
373
|
+
nil
|
374
|
+
end
|
375
|
+
|
376
|
+
def _getField(name)
|
377
|
+
|
378
|
+
return nil
|
379
|
+
|
380
|
+
nil
|
381
|
+
end
|
382
|
+
|
383
|
+
def _setField(name, value)
|
384
|
+
|
385
|
+
nil
|
386
|
+
|
387
|
+
nil
|
388
|
+
end
|
389
|
+
|
390
|
+
def __init_fields__()
|
391
|
+
|
392
|
+
|
393
|
+
nil
|
394
|
+
end
|
395
|
+
|
396
|
+
|
397
|
+
end
|
398
|
+
QuarkRuntimeLaterCaller.unlazy_statics
|
399
|
+
|
400
|
+
def self._ManualLaterCaller; ManualLaterCaller; end
|
401
|
+
class ManualLaterCaller < ::DatawireQuarkCore::QuarkObject
|
402
|
+
attr_accessor :tasks
|
403
|
+
extend ::DatawireQuarkCore::Static
|
404
|
+
|
405
|
+
static quark_List_quark_Task__ref: -> { nil }
|
406
|
+
static mdk_runtime_actors__ManualLaterCaller_ref: -> { nil }
|
407
|
+
|
408
|
+
|
409
|
+
|
410
|
+
def initialize()
|
411
|
+
self.__init_fields__
|
412
|
+
|
413
|
+
nil
|
414
|
+
end
|
415
|
+
|
416
|
+
|
417
|
+
|
418
|
+
|
419
|
+
def schedule(t)
|
420
|
+
|
421
|
+
(@tasks) << (t)
|
422
|
+
|
423
|
+
nil
|
424
|
+
end
|
425
|
+
|
426
|
+
def doNext()
|
427
|
+
|
428
|
+
t = (@tasks).delete_at(0)
|
429
|
+
t.onExecute(nil)
|
430
|
+
|
431
|
+
nil
|
432
|
+
end
|
433
|
+
|
434
|
+
def hasNext()
|
435
|
+
|
436
|
+
return ((@tasks).size) > (0)
|
437
|
+
|
438
|
+
nil
|
439
|
+
end
|
440
|
+
|
441
|
+
def runAll()
|
442
|
+
|
443
|
+
while (self.hasNext()) do
|
444
|
+
self.doNext()
|
445
|
+
end
|
446
|
+
|
447
|
+
nil
|
448
|
+
end
|
449
|
+
|
450
|
+
def _getClass()
|
451
|
+
|
452
|
+
return "mdk_runtime.actors._ManualLaterCaller"
|
453
|
+
|
454
|
+
nil
|
455
|
+
end
|
456
|
+
|
457
|
+
def _getField(name)
|
458
|
+
|
459
|
+
if ((name) == ("tasks"))
|
460
|
+
return (self).tasks
|
461
|
+
end
|
462
|
+
return nil
|
463
|
+
|
464
|
+
nil
|
465
|
+
end
|
466
|
+
|
467
|
+
def _setField(name, value)
|
468
|
+
|
469
|
+
if ((name) == ("tasks"))
|
470
|
+
(self).tasks = ::DatawireQuarkCore.cast(value) { ::DatawireQuarkCore::List }
|
471
|
+
end
|
472
|
+
|
473
|
+
nil
|
474
|
+
end
|
475
|
+
|
476
|
+
def __init_fields__()
|
477
|
+
|
478
|
+
self.tasks = ::DatawireQuarkCore::List.new([])
|
479
|
+
|
480
|
+
nil
|
481
|
+
end
|
482
|
+
|
483
|
+
|
484
|
+
end
|
485
|
+
ManualLaterCaller.unlazy_statics
|
486
|
+
|
299
487
|
def self.MessageDispatcher; MessageDispatcher; end
|
300
488
|
##
|
301
489
|
# Manage a group of related Actors.
|
@@ -306,7 +494,7 @@ def self.MessageDispatcher; MessageDispatcher; end
|
|
306
494
|
#
|
307
495
|
|
308
496
|
class MessageDispatcher < ::DatawireQuarkCore::QuarkObject
|
309
|
-
attr_accessor :logger, :_queued, :_delivering, :_lock
|
497
|
+
attr_accessor :callLater, :logger, :_queued, :_delivering, :_lock
|
310
498
|
extend ::DatawireQuarkCore::Static
|
311
499
|
|
312
500
|
static quark_List_mdk_runtime_actors__QueuedMessage__ref: -> { nil }
|
@@ -314,8 +502,10 @@ class MessageDispatcher < ::DatawireQuarkCore::QuarkObject
|
|
314
502
|
|
315
503
|
|
316
504
|
|
317
|
-
def initialize()
|
505
|
+
def initialize(callLater)
|
506
|
+
|
318
507
|
self.__init_fields__
|
508
|
+
(self).callLater = callLater
|
319
509
|
|
320
510
|
nil
|
321
511
|
end
|
@@ -370,11 +560,43 @@ class MessageDispatcher < ::DatawireQuarkCore::QuarkObject
|
|
370
560
|
@logger.debug(("Queued ") + ((inFlight).to_s))
|
371
561
|
(self)._lock.acquire()
|
372
562
|
((self)._queued) << (inFlight)
|
373
|
-
if ((self)._delivering)
|
374
|
-
(self).
|
375
|
-
|
563
|
+
if (!((self)._delivering))
|
564
|
+
(self)._delivering = true
|
565
|
+
@callLater.schedule(self)
|
566
|
+
end
|
567
|
+
(self)._lock.release()
|
568
|
+
|
569
|
+
nil
|
570
|
+
end
|
571
|
+
|
572
|
+
##
|
573
|
+
# Are there any messages waiting to be delivered?
|
574
|
+
|
575
|
+
def queued()
|
576
|
+
|
577
|
+
(self)._lock.acquire()
|
578
|
+
result = (self)._delivering
|
579
|
+
(self)._lock.release()
|
580
|
+
return result
|
581
|
+
|
582
|
+
nil
|
583
|
+
end
|
584
|
+
|
585
|
+
##
|
586
|
+
# Causes message delivery to occur when using manual CallLater
|
587
|
+
|
588
|
+
def pump()
|
589
|
+
|
590
|
+
while (self.queued()) do
|
591
|
+
(self).callLater.runAll()
|
376
592
|
end
|
377
|
-
|
593
|
+
|
594
|
+
nil
|
595
|
+
end
|
596
|
+
|
597
|
+
def onExecute(runtime)
|
598
|
+
|
599
|
+
(self)._lock.acquire()
|
378
600
|
while ((((self)._queued).size) > (0)) do
|
379
601
|
toDeliver = (self)._queued
|
380
602
|
(self)._queued = ::DatawireQuarkCore::List.new([])
|
@@ -383,7 +605,10 @@ class MessageDispatcher < ::DatawireQuarkCore::QuarkObject
|
|
383
605
|
while ((idx) < ((toDeliver).size)) do
|
384
606
|
@logger.debug(("Delivering ") + (((toDeliver)[idx]).to_s))
|
385
607
|
deliver = ::Quark.quark._BoundMethod.new(self, "_callQueuedMessage", ::DatawireQuarkCore::List.new([(toDeliver)[idx]]))
|
386
|
-
::Quark.quark.concurrent.Context.runtime().callSafely(deliver, false)
|
608
|
+
success = ::DatawireQuarkCore.cast(::Quark.quark.concurrent.Context.runtime().callSafely(deliver, false)) { ::Object }
|
609
|
+
if (!(success))
|
610
|
+
@logger.warn(("FAILURE when delivering ") + (((toDeliver)[idx]).to_s))
|
611
|
+
end
|
387
612
|
idx = (idx) + (1)
|
388
613
|
end
|
389
614
|
(self)._lock.acquire()
|
@@ -403,6 +628,9 @@ class MessageDispatcher < ::DatawireQuarkCore::QuarkObject
|
|
403
628
|
|
404
629
|
def _getField(name)
|
405
630
|
|
631
|
+
if ((name) == ("callLater"))
|
632
|
+
return (self).callLater
|
633
|
+
end
|
406
634
|
if ((name) == ("logger"))
|
407
635
|
return (self).logger
|
408
636
|
end
|
@@ -422,6 +650,9 @@ class MessageDispatcher < ::DatawireQuarkCore::QuarkObject
|
|
422
650
|
|
423
651
|
def _setField(name, value)
|
424
652
|
|
653
|
+
if ((name) == ("callLater"))
|
654
|
+
(self).callLater = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors._CallLater }
|
655
|
+
end
|
425
656
|
if ((name) == ("logger"))
|
426
657
|
(self).logger = value
|
427
658
|
end
|
@@ -440,6 +671,7 @@ class MessageDispatcher < ::DatawireQuarkCore::QuarkObject
|
|
440
671
|
|
441
672
|
def __init_fields__()
|
442
673
|
|
674
|
+
self.callLater = nil
|
443
675
|
self.logger = ::Quark.quark._getLogger("actors")
|
444
676
|
self._queued = ::DatawireQuarkCore::List.new([])
|
445
677
|
self._delivering = false
|