datawire_mdk 2.0.29 → 2.0.30
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 +826 -463
- data/lib/mdk.rb +103 -23
- data/lib/mdk_discovery.rb +11 -4
- data/lib/mdk_discovery/protocol.rb +2 -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 +11 -4
- data/lib/mdk_protocol.rb +152 -77
- data/lib/mdk_rtp.rb +1 -1
- data/lib/mdk_runtime.rb +1 -1
- data/lib/mdk_runtime/actors.rb +1 -1
- data/lib/mdk_runtime/files.rb +1 -1
- data/lib/mdk_runtime/promise.rb +1 -1
- data/lib/mdk_tracing.rb +28 -17
- data/lib/mdk_tracing/api.rb +1 -1
- data/lib/mdk_tracing/protocol.rb +3 -3
- 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
@@ -1,4 +1,4 @@
|
|
1
|
-
# Quark 1.0.452 run at 2016-11-
|
1
|
+
# Quark 1.0.452 run at 2016-11-10 18:39:58.222591
|
2
2
|
module Quark
|
3
3
|
require "quark"
|
4
4
|
def self.mdk; Mdk; end
|
@@ -16,6 +16,7 @@ require_relative 'mdk_introspection' # 0 () ()
|
|
16
16
|
require_relative 'mdk_discovery/protocol' # 0 ('mdk_discovery',) ()
|
17
17
|
require_relative 'mdk_discovery/synapse' # 0 ('mdk_discovery',) ()
|
18
18
|
require_relative 'mdk_rtp' # 0 () ()
|
19
|
+
require_relative 'mdk_tracing/protocol' # 0 ('mdk_tracing',) ()
|
19
20
|
require_relative 'mdk_runtime/promise' # 0 ('mdk_runtime',) ()
|
20
21
|
require_relative 'mdk_util' # 0 () ()
|
21
22
|
|
@@ -969,6 +970,92 @@ class TLSInit < ::DatawireQuarkCore::QuarkObject
|
|
969
970
|
end
|
970
971
|
TLSInit.unlazy_statics
|
971
972
|
|
973
|
+
def self.LoggedMessageId; LoggedMessageId; end
|
974
|
+
##
|
975
|
+
# Information about the message that was just logged.
|
976
|
+
#
|
977
|
+
|
978
|
+
class LoggedMessageId < ::DatawireQuarkCore::QuarkObject
|
979
|
+
attr_accessor :traceId, :causalLevel, :environment, :environmentFallback
|
980
|
+
extend ::DatawireQuarkCore::Static
|
981
|
+
|
982
|
+
static mdk_LoggedMessageId_ref: -> { nil }
|
983
|
+
static quark_List_quark_int__ref: -> { nil }
|
984
|
+
|
985
|
+
|
986
|
+
|
987
|
+
def initialize(traceId, causalLevel, environment, environmentFallback)
|
988
|
+
|
989
|
+
self.__init_fields__
|
990
|
+
(self).traceId = traceId
|
991
|
+
(self).causalLevel = causalLevel
|
992
|
+
(self).environment = environment
|
993
|
+
(self).environmentFallback = environmentFallback
|
994
|
+
|
995
|
+
nil
|
996
|
+
end
|
997
|
+
|
998
|
+
|
999
|
+
|
1000
|
+
|
1001
|
+
def _getClass()
|
1002
|
+
|
1003
|
+
return "mdk.LoggedMessageId"
|
1004
|
+
|
1005
|
+
nil
|
1006
|
+
end
|
1007
|
+
|
1008
|
+
def _getField(name)
|
1009
|
+
|
1010
|
+
if ((name) == ("traceId"))
|
1011
|
+
return (self).traceId
|
1012
|
+
end
|
1013
|
+
if ((name) == ("causalLevel"))
|
1014
|
+
return (self).causalLevel
|
1015
|
+
end
|
1016
|
+
if ((name) == ("environment"))
|
1017
|
+
return (self).environment
|
1018
|
+
end
|
1019
|
+
if ((name) == ("environmentFallback"))
|
1020
|
+
return (self).environmentFallback
|
1021
|
+
end
|
1022
|
+
return nil
|
1023
|
+
|
1024
|
+
nil
|
1025
|
+
end
|
1026
|
+
|
1027
|
+
def _setField(name, value)
|
1028
|
+
|
1029
|
+
if ((name) == ("traceId"))
|
1030
|
+
(self).traceId = ::DatawireQuarkCore.cast(value) { ::String }
|
1031
|
+
end
|
1032
|
+
if ((name) == ("causalLevel"))
|
1033
|
+
(self).causalLevel = ::DatawireQuarkCore.cast(value) { ::DatawireQuarkCore::List }
|
1034
|
+
end
|
1035
|
+
if ((name) == ("environment"))
|
1036
|
+
(self).environment = ::DatawireQuarkCore.cast(value) { ::String }
|
1037
|
+
end
|
1038
|
+
if ((name) == ("environmentFallback"))
|
1039
|
+
(self).environmentFallback = ::DatawireQuarkCore.cast(value) { ::String }
|
1040
|
+
end
|
1041
|
+
|
1042
|
+
nil
|
1043
|
+
end
|
1044
|
+
|
1045
|
+
def __init_fields__()
|
1046
|
+
|
1047
|
+
self.traceId = nil
|
1048
|
+
self.causalLevel = nil
|
1049
|
+
self.environment = nil
|
1050
|
+
self.environmentFallback = nil
|
1051
|
+
|
1052
|
+
nil
|
1053
|
+
end
|
1054
|
+
|
1055
|
+
|
1056
|
+
end
|
1057
|
+
LoggedMessageId.unlazy_statics
|
1058
|
+
|
972
1059
|
def self.SessionImpl; SessionImpl; end
|
973
1060
|
class SessionImpl < ::DatawireQuarkCore::QuarkObject
|
974
1061
|
attr_accessor :_mdk, :_resolved, :_interactionReports, :_context, :_experimental
|
@@ -1121,59 +1208,51 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
|
|
1121
1208
|
|
1122
1209
|
def _log(level, category, text)
|
1123
1210
|
|
1124
|
-
if (
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
|
1211
|
+
if (::Quark.mdk.SessionImpl._inLogging.getValue())
|
1212
|
+
return ::DatawireQuarkCore.cast(nil) { ::Quark.mdk.LoggedMessageId }
|
1213
|
+
end
|
1214
|
+
::Quark.mdk.SessionImpl._inLogging.setValue(true)
|
1215
|
+
evt = ::Quark.mdk_tracing.createLogEvent(@_context, (@_mdk).procUUID, level, category, text)
|
1216
|
+
if ((((@_mdk)._tracer) != (nil)) && (self._enabled(level)))
|
1217
|
+
(@_mdk)._tracer.log(evt)
|
1131
1218
|
end
|
1219
|
+
::Quark.mdk.SessionImpl._inLogging.setValue(false)
|
1220
|
+
return ::Quark.mdk.LoggedMessageId.new((@_context).traceId, (((evt).context).clock).clocks, ((@_context).environment).name, ((@_context).environment).fallbackName)
|
1132
1221
|
|
1133
1222
|
nil
|
1134
1223
|
end
|
1135
1224
|
|
1136
1225
|
def critical(category, text)
|
1137
1226
|
|
1138
|
-
|
1139
|
-
self._log("CRITICAL", category, text)
|
1140
|
-
end
|
1227
|
+
return self._log("CRITICAL", category, text)
|
1141
1228
|
|
1142
1229
|
nil
|
1143
1230
|
end
|
1144
1231
|
|
1145
1232
|
def error(category, text)
|
1146
1233
|
|
1147
|
-
|
1148
|
-
self._log("ERROR", category, text)
|
1149
|
-
end
|
1234
|
+
return self._log("ERROR", category, text)
|
1150
1235
|
|
1151
1236
|
nil
|
1152
1237
|
end
|
1153
1238
|
|
1154
1239
|
def warn(category, text)
|
1155
1240
|
|
1156
|
-
|
1157
|
-
self._log("WARN", category, text)
|
1158
|
-
end
|
1241
|
+
return self._log("WARN", category, text)
|
1159
1242
|
|
1160
1243
|
nil
|
1161
1244
|
end
|
1162
1245
|
|
1163
1246
|
def info(category, text)
|
1164
1247
|
|
1165
|
-
|
1166
|
-
self._log("INFO", category, text)
|
1167
|
-
end
|
1248
|
+
return self._log("INFO", category, text)
|
1168
1249
|
|
1169
1250
|
nil
|
1170
1251
|
end
|
1171
1252
|
|
1172
1253
|
def debug(category, text)
|
1173
1254
|
|
1174
|
-
|
1175
|
-
self._log("DEBUG", category, text)
|
1176
|
-
end
|
1255
|
+
return self._log("DEBUG", category, text)
|
1177
1256
|
|
1178
1257
|
nil
|
1179
1258
|
end
|
@@ -1248,6 +1327,7 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
|
|
1248
1327
|
(interactionReport).node = (@_mdk).procUUID
|
1249
1328
|
(interactionReport).timestamp = ((1000.0) * ((@_mdk)._runtime.getTimeService().time())).round()
|
1250
1329
|
(interactionReport).session = (@_context).traceId
|
1330
|
+
(interactionReport).environment = (@_context).environment
|
1251
1331
|
(@_interactionReports) << (interactionReport)
|
1252
1332
|
(@_resolved) << (::DatawireQuarkCore::List.new([]))
|
1253
1333
|
|
data/lib/mdk_discovery.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Quark 1.0.452 run at 2016-11-
|
1
|
+
# Quark 1.0.452 run at 2016-11-10 18:39:58.222591
|
2
2
|
module Quark
|
3
3
|
require "quark"
|
4
4
|
def self.mdk_discovery; MdkDiscovery; end
|
@@ -1262,7 +1262,9 @@ class Cluster < ::DatawireQuarkCore::QuarkObject
|
|
1262
1262
|
while ((jdx) < ((waiting).size)) do
|
1263
1263
|
req = (waiting)[jdx]
|
1264
1264
|
if (::Quark.mdk_util.versionMatch((req).version, (node).version))
|
1265
|
-
(req).factory.
|
1265
|
+
if (!(((req).factory).promise.value().hasValue()))
|
1266
|
+
(req).factory.resolve(self._copyNode(node))
|
1267
|
+
end
|
1266
1268
|
else
|
1267
1269
|
((self)._waiting) << (req)
|
1268
1270
|
end
|
@@ -1718,8 +1720,13 @@ class Discovery < ::DatawireQuarkCore::QuarkObject
|
|
1718
1720
|
if (!(cluster.matchingVersionRegistered(version)))
|
1719
1721
|
fallback = environment.getFallback()
|
1720
1722
|
if ((fallback) != (nil))
|
1721
|
-
self.
|
1722
|
-
|
1723
|
+
fallbackCluster = self._getCluster(service, fallback)
|
1724
|
+
if (!(fallbackCluster.matchingVersionRegistered(version)))
|
1725
|
+
fallbackCluster._addRequest(version, factory)
|
1726
|
+
else
|
1727
|
+
self._release()
|
1728
|
+
return self.resolve(service, version, fallback)
|
1729
|
+
end
|
1723
1730
|
end
|
1724
1731
|
end
|
1725
1732
|
result = cluster.chooseVersion(version)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Quark 1.0.452 run at 2016-11-
|
1
|
+
# Quark 1.0.452 run at 2016-11-10 18:39:58.222591
|
2
2
|
module Quark
|
3
3
|
require "quark"
|
4
4
|
def self.mdk_discovery; MdkDiscovery; end
|
@@ -167,6 +167,7 @@ class DiscoClient < ::DatawireQuarkCore::QuarkObject
|
|
167
167
|
def onWSConnected(websocket)
|
168
168
|
|
169
169
|
(self).sock = websocket
|
170
|
+
(self).lastHeartbeat = (((self)._timeService.time()) * (1000.0)).round()
|
170
171
|
self.heartbeat()
|
171
172
|
|
172
173
|
nil
|
data/lib/mdk_introspection.rb
CHANGED
data/lib/mdk_metrics.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Quark 1.0.452 run at 2016-11-
|
1
|
+
# Quark 1.0.452 run at 2016-11-10 18:39:58.222591
|
2
2
|
module Quark
|
3
3
|
require "quark"
|
4
4
|
def self.mdk_metrics; MdkMetrics; end
|
@@ -16,7 +16,7 @@ def self.InteractionEvent; InteractionEvent; end
|
|
16
16
|
# Wire protocol message for reporting interaction results to MCP.
|
17
17
|
|
18
18
|
class InteractionEvent < ::Quark.mdk_protocol.Serializable
|
19
|
-
attr_accessor :timestamp, :uuid, :session, :node, :results
|
19
|
+
attr_accessor :timestamp, :environment, :uuid, :session, :node, :results
|
20
20
|
extend ::DatawireQuarkCore::Static
|
21
21
|
|
22
22
|
static _json_type: -> { "interaction_event" }
|
@@ -70,6 +70,9 @@ class InteractionEvent < ::Quark.mdk_protocol.Serializable
|
|
70
70
|
if ((name) == ("timestamp"))
|
71
71
|
return (self).timestamp
|
72
72
|
end
|
73
|
+
if ((name) == ("environment"))
|
74
|
+
return (self).environment
|
75
|
+
end
|
73
76
|
if ((name) == ("uuid"))
|
74
77
|
return (self).uuid
|
75
78
|
end
|
@@ -95,6 +98,9 @@ class InteractionEvent < ::Quark.mdk_protocol.Serializable
|
|
95
98
|
if ((name) == ("timestamp"))
|
96
99
|
(self).timestamp = ::DatawireQuarkCore.cast(value) { ::Integer }
|
97
100
|
end
|
101
|
+
if ((name) == ("environment"))
|
102
|
+
(self).environment = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_protocol.OperationalEnvironment }
|
103
|
+
end
|
98
104
|
if ((name) == ("uuid"))
|
99
105
|
(self).uuid = ::DatawireQuarkCore.cast(value) { ::String }
|
100
106
|
end
|
@@ -115,6 +121,7 @@ class InteractionEvent < ::Quark.mdk_protocol.Serializable
|
|
115
121
|
|
116
122
|
super
|
117
123
|
self.timestamp = nil
|
124
|
+
self.environment = nil
|
118
125
|
self.uuid = ::Quark.quark.concurrent.Context.runtime().uuid()
|
119
126
|
self.session = nil
|
120
127
|
self.node = nil
|
@@ -251,14 +258,14 @@ class MetricsClient < ::DatawireQuarkCore::QuarkObject
|
|
251
258
|
def onWSConnected(websock)
|
252
259
|
|
253
260
|
(self)._sock = websock
|
254
|
-
(self)._sendWithAcks.onConnected(self, (self)._dispatcher,
|
261
|
+
(self)._sendWithAcks.onConnected(::Quark.mdk_protocol.WSSend.new(self, (self)._dispatcher, (self)._sock))
|
255
262
|
|
256
263
|
nil
|
257
264
|
end
|
258
265
|
|
259
266
|
def onPump()
|
260
267
|
|
261
|
-
(self)._sendWithAcks.onPump(self, (self)._dispatcher, (self)._sock)
|
268
|
+
(self)._sendWithAcks.onPump(::Quark.mdk_protocol.WSSend.new(self, (self)._dispatcher, (self)._sock))
|
262
269
|
|
263
270
|
nil
|
264
271
|
end
|
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-10 18:39:58.222591
|
2
2
|
module Quark
|
3
3
|
require "quark"
|
4
4
|
def self.mdk_protocol; MdkProtocol; end
|
@@ -135,7 +135,6 @@ class LamportClock < ::Quark.mdk_protocol.Serializable
|
|
135
135
|
attr_accessor :_mutex, :clocks
|
136
136
|
extend ::DatawireQuarkCore::Static
|
137
137
|
|
138
|
-
static quark_List_quark_int__ref: -> { nil }
|
139
138
|
static mdk_protocol_LamportClock_ref: -> { nil }
|
140
139
|
|
141
140
|
|
@@ -1794,7 +1793,7 @@ class AckableEvent < ::DatawireQuarkCore::QuarkObject
|
|
1794
1793
|
|
1795
1794
|
self.json_type = nil
|
1796
1795
|
self.sequence = nil
|
1797
|
-
self.sync =
|
1796
|
+
self.sync = 1
|
1798
1797
|
self.payload = nil
|
1799
1798
|
|
1800
1799
|
nil
|
@@ -1804,16 +1803,142 @@ class AckableEvent < ::DatawireQuarkCore::QuarkObject
|
|
1804
1803
|
end
|
1805
1804
|
AckableEvent.unlazy_statics
|
1806
1805
|
|
1806
|
+
def self.SendAckableEvent; SendAckableEvent; end
|
1807
|
+
##
|
1808
|
+
# Send a message to the other side.
|
1809
|
+
|
1810
|
+
class SendAckableEvent < ::DatawireQuarkCore::QuarkObject
|
1811
|
+
extend ::DatawireQuarkCore::Static
|
1812
|
+
|
1813
|
+
static mdk_protocol_SendAckableEvent_ref: -> { nil }
|
1814
|
+
|
1815
|
+
|
1816
|
+
|
1817
|
+
def initialize()
|
1818
|
+
self.__init_fields__
|
1819
|
+
|
1820
|
+
nil
|
1821
|
+
end
|
1822
|
+
|
1823
|
+
|
1824
|
+
|
1825
|
+
|
1826
|
+
def send(event)
|
1827
|
+
raise NotImplementedError, '`SendAckableEvent.send` is an abstract method'
|
1828
|
+
|
1829
|
+
nil
|
1830
|
+
end
|
1831
|
+
|
1832
|
+
def __init_fields__()
|
1833
|
+
|
1834
|
+
|
1835
|
+
nil
|
1836
|
+
end
|
1837
|
+
|
1838
|
+
|
1839
|
+
end
|
1840
|
+
SendAckableEvent.unlazy_statics
|
1841
|
+
|
1842
|
+
def self.WSSend; WSSend; end
|
1843
|
+
##
|
1844
|
+
# Send using a WebSocket actor.
|
1845
|
+
|
1846
|
+
class WSSend < ::DatawireQuarkCore::QuarkObject
|
1847
|
+
attr_accessor :origin, :dispatcher, :sock
|
1848
|
+
extend ::DatawireQuarkCore::Static
|
1849
|
+
|
1850
|
+
static mdk_protocol_WSSend_ref: -> { nil }
|
1851
|
+
|
1852
|
+
|
1853
|
+
|
1854
|
+
def initialize(origin, dispatcher, sock)
|
1855
|
+
|
1856
|
+
self.__init_fields__
|
1857
|
+
(self).origin = origin
|
1858
|
+
(self).dispatcher = dispatcher
|
1859
|
+
(self).sock = sock
|
1860
|
+
|
1861
|
+
nil
|
1862
|
+
end
|
1863
|
+
|
1864
|
+
|
1865
|
+
|
1866
|
+
|
1867
|
+
def send(event)
|
1868
|
+
|
1869
|
+
@dispatcher.tell(@origin, event.encode(), @sock)
|
1870
|
+
|
1871
|
+
nil
|
1872
|
+
end
|
1873
|
+
|
1874
|
+
def toString()
|
1875
|
+
|
1876
|
+
return ((self).sock).to_s
|
1877
|
+
|
1878
|
+
nil
|
1879
|
+
end
|
1880
|
+
|
1881
|
+
def _getClass()
|
1882
|
+
|
1883
|
+
return "mdk_protocol.WSSend"
|
1884
|
+
|
1885
|
+
nil
|
1886
|
+
end
|
1887
|
+
|
1888
|
+
def _getField(name)
|
1889
|
+
|
1890
|
+
if ((name) == ("origin"))
|
1891
|
+
return (self).origin
|
1892
|
+
end
|
1893
|
+
if ((name) == ("dispatcher"))
|
1894
|
+
return (self).dispatcher
|
1895
|
+
end
|
1896
|
+
if ((name) == ("sock"))
|
1897
|
+
return (self).sock
|
1898
|
+
end
|
1899
|
+
return nil
|
1900
|
+
|
1901
|
+
nil
|
1902
|
+
end
|
1903
|
+
|
1904
|
+
def _setField(name, value)
|
1905
|
+
|
1906
|
+
if ((name) == ("origin"))
|
1907
|
+
(self).origin = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.Actor }
|
1908
|
+
end
|
1909
|
+
if ((name) == ("dispatcher"))
|
1910
|
+
(self).dispatcher = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.MessageDispatcher }
|
1911
|
+
end
|
1912
|
+
if ((name) == ("sock"))
|
1913
|
+
(self).sock = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.Actor }
|
1914
|
+
end
|
1915
|
+
|
1916
|
+
nil
|
1917
|
+
end
|
1918
|
+
|
1919
|
+
def __init_fields__()
|
1920
|
+
|
1921
|
+
self.origin = nil
|
1922
|
+
self.dispatcher = nil
|
1923
|
+
self.sock = nil
|
1924
|
+
|
1925
|
+
nil
|
1926
|
+
end
|
1927
|
+
|
1928
|
+
|
1929
|
+
end
|
1930
|
+
WSSend.unlazy_statics
|
1931
|
+
|
1807
1932
|
def self.SendWithAcks; SendWithAcks; end
|
1808
1933
|
##
|
1809
1934
|
# Utility class for sending messages with a protocol that sends back acks.
|
1810
1935
|
#
|
1811
1936
|
|
1812
1937
|
class SendWithAcks < ::DatawireQuarkCore::QuarkObject
|
1813
|
-
attr_accessor :
|
1938
|
+
attr_accessor :_buffered, :_inFlight, :_added, :_sent, :_recorded, :_myLog
|
1814
1939
|
extend ::DatawireQuarkCore::Static
|
1815
1940
|
|
1816
|
-
static
|
1941
|
+
static quark_Map_quark_long_mdk_protocol_AckableEvent__ref: -> { nil }
|
1817
1942
|
static mdk_protocol_SendWithAcks_ref: -> { nil }
|
1818
1943
|
|
1819
1944
|
|
@@ -1829,7 +1954,7 @@ class SendWithAcks < ::DatawireQuarkCore::QuarkObject
|
|
1829
1954
|
|
1830
1955
|
def _debug(message)
|
1831
1956
|
|
1832
|
-
s = (((("[") + (((@_buffered).size).to_s)) + (" buf, ")) + (((@_inFlight).size).to_s)) + (" inf] ")
|
1957
|
+
s = (((("[") + (((::DatawireQuarkCore::List.new((@_buffered).keys)).size).to_s)) + (" buf, ")) + (((::DatawireQuarkCore::List.new((@_inFlight).keys)).size).to_s)) + (" inf] ")
|
1833
1958
|
@_myLog.debug((s) + (message))
|
1834
1959
|
|
1835
1960
|
nil
|
@@ -1838,22 +1963,11 @@ class SendWithAcks < ::DatawireQuarkCore::QuarkObject
|
|
1838
1963
|
##
|
1839
1964
|
# Call when (re)connected to other side.
|
1840
1965
|
|
1841
|
-
def onConnected(
|
1966
|
+
def onConnected(sender)
|
1842
1967
|
|
1843
|
-
|
1844
|
-
|
1845
|
-
|
1846
|
-
(@_inFlight) << (evt)
|
1847
|
-
if (((evt.getTimestamp()) > ((@_lastSyncTime) + (@_syncRequestPeriod))) || (((@_inFlight).size) == (@_syncInFlightMax)))
|
1848
|
-
(evt).sync = 1
|
1849
|
-
@_lastSyncTime = evt.getTimestamp()
|
1850
|
-
debugSuffix = " with sync set"
|
1851
|
-
end
|
1852
|
-
dispatcher.tell(origin, evt.encode(), sock)
|
1853
|
-
(evt).sync = 0
|
1854
|
-
@_sent = (@_sent) + ((1))
|
1855
|
-
self._debug((((("sent #") + (((evt).sequence).to_s)) + (debugSuffix)) + (" to ")) + ((sock).to_s))
|
1856
|
-
end
|
1968
|
+
(@_buffered).merge!(@_inFlight)
|
1969
|
+
@_inFlight = {}
|
1970
|
+
self.onPump(sender)
|
1857
1971
|
|
1858
1972
|
nil
|
1859
1973
|
end
|
@@ -1861,21 +1975,16 @@ class SendWithAcks < ::DatawireQuarkCore::QuarkObject
|
|
1861
1975
|
##
|
1862
1976
|
# Call to send buffered messages.
|
1863
1977
|
|
1864
|
-
def onPump(
|
1978
|
+
def onPump(sender)
|
1865
1979
|
|
1866
|
-
|
1867
|
-
|
1868
|
-
|
1869
|
-
|
1870
|
-
|
1871
|
-
|
1872
|
-
|
1873
|
-
|
1874
|
-
end
|
1875
|
-
dispatcher.tell(origin, evt.encode(), sock)
|
1876
|
-
(evt).sync = 0
|
1877
|
-
@_sent = (@_sent) + ((1))
|
1878
|
-
self._debug((((("sent #") + (((evt).sequence).to_s)) + (debugSuffix)) + (" to ")) + ((sock).to_s))
|
1980
|
+
seqs = ::DatawireQuarkCore::List.new((@_buffered).keys)
|
1981
|
+
(seqs).sort!
|
1982
|
+
idx = 0
|
1983
|
+
while (((seqs).size) > (idx)) do
|
1984
|
+
evt = (@_buffered).delete((seqs)[idx])
|
1985
|
+
(@_inFlight)[(evt).sequence] = (evt)
|
1986
|
+
sender.send(evt)
|
1987
|
+
idx = (idx) + (1)
|
1879
1988
|
end
|
1880
1989
|
|
1881
1990
|
nil
|
@@ -1886,15 +1995,9 @@ class SendWithAcks < ::DatawireQuarkCore::QuarkObject
|
|
1886
1995
|
|
1887
1996
|
def onAck(sequence)
|
1888
1997
|
|
1889
|
-
|
1890
|
-
|
1891
|
-
|
1892
|
-
@_recorded = (@_recorded) + ((1))
|
1893
|
-
self._debug(((("ack #") + ((sequence).to_s)) + (", discarding #")) + (((evt).sequence).to_s))
|
1894
|
-
else
|
1895
|
-
break
|
1896
|
-
end
|
1897
|
-
end
|
1998
|
+
(@_inFlight).delete(sequence)
|
1999
|
+
@_recorded = (@_recorded) + ((1))
|
2000
|
+
self._debug(((("ack #") + ((sequence).to_s)) + (", discarding #")) + ((sequence).to_s))
|
1898
2001
|
|
1899
2002
|
nil
|
1900
2003
|
end
|
@@ -1906,7 +2009,7 @@ class SendWithAcks < ::DatawireQuarkCore::QuarkObject
|
|
1906
2009
|
|
1907
2010
|
wrapper = ::Quark.mdk_protocol.AckableEvent.new(json_type, event, @_added)
|
1908
2011
|
@_added = (@_added) + ((1))
|
1909
|
-
(@_buffered)
|
2012
|
+
(@_buffered)[(wrapper).sequence] = (wrapper)
|
1910
2013
|
self._debug(("logged #") + (((wrapper).sequence).to_s))
|
1911
2014
|
|
1912
2015
|
nil
|
@@ -1921,12 +2024,6 @@ class SendWithAcks < ::DatawireQuarkCore::QuarkObject
|
|
1921
2024
|
|
1922
2025
|
def _getField(name)
|
1923
2026
|
|
1924
|
-
if ((name) == ("_syncRequestPeriod"))
|
1925
|
-
return (self)._syncRequestPeriod
|
1926
|
-
end
|
1927
|
-
if ((name) == ("_syncInFlightMax"))
|
1928
|
-
return (self)._syncInFlightMax
|
1929
|
-
end
|
1930
2027
|
if ((name) == ("_buffered"))
|
1931
2028
|
return (self)._buffered
|
1932
2029
|
end
|
@@ -1939,15 +2036,9 @@ class SendWithAcks < ::DatawireQuarkCore::QuarkObject
|
|
1939
2036
|
if ((name) == ("_sent"))
|
1940
2037
|
return (self)._sent
|
1941
2038
|
end
|
1942
|
-
if ((name) == ("_failedSends"))
|
1943
|
-
return (self)._failedSends
|
1944
|
-
end
|
1945
2039
|
if ((name) == ("_recorded"))
|
1946
2040
|
return (self)._recorded
|
1947
2041
|
end
|
1948
|
-
if ((name) == ("_lastSyncTime"))
|
1949
|
-
return (self)._lastSyncTime
|
1950
|
-
end
|
1951
2042
|
if ((name) == ("_myLog"))
|
1952
2043
|
return (self)._myLog
|
1953
2044
|
end
|
@@ -1958,17 +2049,11 @@ class SendWithAcks < ::DatawireQuarkCore::QuarkObject
|
|
1958
2049
|
|
1959
2050
|
def _setField(name, value)
|
1960
2051
|
|
1961
|
-
if ((name) == ("_syncRequestPeriod"))
|
1962
|
-
(self)._syncRequestPeriod = ::DatawireQuarkCore.cast(value) { ::Integer }
|
1963
|
-
end
|
1964
|
-
if ((name) == ("_syncInFlightMax"))
|
1965
|
-
(self)._syncInFlightMax = ::DatawireQuarkCore.cast(value) { ::Integer }
|
1966
|
-
end
|
1967
2052
|
if ((name) == ("_buffered"))
|
1968
|
-
(self)._buffered = ::DatawireQuarkCore.cast(value) { ::
|
2053
|
+
(self)._buffered = ::DatawireQuarkCore.cast(value) { ::Hash }
|
1969
2054
|
end
|
1970
2055
|
if ((name) == ("_inFlight"))
|
1971
|
-
(self)._inFlight = ::DatawireQuarkCore.cast(value) { ::
|
2056
|
+
(self)._inFlight = ::DatawireQuarkCore.cast(value) { ::Hash }
|
1972
2057
|
end
|
1973
2058
|
if ((name) == ("_added"))
|
1974
2059
|
(self)._added = ::DatawireQuarkCore.cast(value) { ::Integer }
|
@@ -1976,15 +2061,9 @@ class SendWithAcks < ::DatawireQuarkCore::QuarkObject
|
|
1976
2061
|
if ((name) == ("_sent"))
|
1977
2062
|
(self)._sent = ::DatawireQuarkCore.cast(value) { ::Integer }
|
1978
2063
|
end
|
1979
|
-
if ((name) == ("_failedSends"))
|
1980
|
-
(self)._failedSends = ::DatawireQuarkCore.cast(value) { ::Integer }
|
1981
|
-
end
|
1982
2064
|
if ((name) == ("_recorded"))
|
1983
2065
|
(self)._recorded = ::DatawireQuarkCore.cast(value) { ::Integer }
|
1984
2066
|
end
|
1985
|
-
if ((name) == ("_lastSyncTime"))
|
1986
|
-
(self)._lastSyncTime = ::DatawireQuarkCore.cast(value) { ::Integer }
|
1987
|
-
end
|
1988
2067
|
if ((name) == ("_myLog"))
|
1989
2068
|
(self)._myLog = value
|
1990
2069
|
end
|
@@ -1994,15 +2073,11 @@ class SendWithAcks < ::DatawireQuarkCore::QuarkObject
|
|
1994
2073
|
|
1995
2074
|
def __init_fields__()
|
1996
2075
|
|
1997
|
-
self.
|
1998
|
-
self.
|
1999
|
-
self._buffered = ::DatawireQuarkCore::List.new([])
|
2000
|
-
self._inFlight = ::DatawireQuarkCore::List.new([])
|
2076
|
+
self._buffered = {}
|
2077
|
+
self._inFlight = {}
|
2001
2078
|
self._added = 0
|
2002
2079
|
self._sent = 0
|
2003
|
-
self._failedSends = 0
|
2004
2080
|
self._recorded = 0
|
2005
|
-
self._lastSyncTime = 0
|
2006
2081
|
self._myLog = ::Quark.quark._getLogger("SendWithAcks")
|
2007
2082
|
|
2008
2083
|
nil
|