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