datawire_mdk 2.0.15 → 2.0.16

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.
data/lib/mdk_rtp.rb ADDED
@@ -0,0 +1,38 @@
1
+ # Quark 1.0.452 run at 2016-10-13 16:26:58.627837
2
+ module Quark
3
+ require "quark"
4
+ def self.mdk_rtp; MdkRtp; end
5
+ module MdkRtp
6
+ require "datawire-quark-core"
7
+ require_relative 'quark/reflect' # 0 ('quark',) ()
8
+ require_relative 'mdk_protocol' # 0 () ()
9
+
10
+
11
+ ##
12
+ # Create a JSONParser that can read all messages to/from the MCP.
13
+
14
+ def self.getRTPParser()
15
+
16
+ parser = ::Quark.mdk_protocol.JSONParser.new()
17
+ parser.register("open", ::Quark.quark.reflect.QuarkClass.get("mdk_protocol.Open"))
18
+ parser.register("mdk.protocol.Open", ::Quark.quark.reflect.QuarkClass.get("mdk_protocol.Open"))
19
+ parser.register("close", ::Quark.quark.reflect.QuarkClass.get("mdk_protocol.Close"))
20
+ parser.register("mdk.protocol.Close", ::Quark.quark.reflect.QuarkClass.get("mdk_protocol.Close"))
21
+ parser.register("discovery.protocol.Close", ::Quark.quark.reflect.QuarkClass.get("mdk_protocol.Close"))
22
+ parser.register("active", ::Quark.quark.reflect.QuarkClass.get("mdk_discovery.protocol.Active"))
23
+ parser.register("discovery.protocol.Expire", ::Quark.quark.reflect.QuarkClass.get("mdk_discovery.protocol.Expire"))
24
+ parser.register("expire", ::Quark.quark.reflect.QuarkClass.get("mdk_discovery.protocol.Expire"))
25
+ parser.register("discovery.protocol.Expire", ::Quark.quark.reflect.QuarkClass.get("mdk_discovery.protocol.Expire"))
26
+ parser.register("clear", ::Quark.quark.reflect.QuarkClass.get("mdk_discovery.protocol.Clear"))
27
+ parser.register("discovery.protocol.Clear", ::Quark.quark.reflect.QuarkClass.get("mdk_discovery.protocol.Clear"))
28
+ parser.register("log", ::Quark.quark.reflect.QuarkClass.get("mdk_tracing.protocol.LogEvent"))
29
+ parser.register("logack", ::Quark.quark.reflect.QuarkClass.get("mdk_tracing.protocol.LogAck"))
30
+ parser.register("mdk_tracing.protocol.LogAckEvent", ::Quark.quark.reflect.QuarkClass.get("mdk_tracing.protocol.LogAck"))
31
+ parser.register("subscribe", ::Quark.quark.reflect.QuarkClass.get("mdk_tracing.protocol.Subscribe"))
32
+ return parser
33
+
34
+
35
+ nil
36
+ end
37
+ end # module MdkRtp
38
+ end # module Quark
data/lib/mdk_runtime.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-10-05 18:08:41.189562
1
+ # Quark 1.0.452 run at 2016-10-13 16:26:58.627837
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_runtime; MdkRuntime; end
@@ -9,9 +9,9 @@ require_relative 'mdk_runtime/actors' # 0 ('mdk_runtime',) ()
9
9
  require_relative 'mdk_runtime/files' # 0 ('mdk_runtime',) ()
10
10
  require_relative 'mdk_runtime/promise' # 0 ('mdk_runtime',) ()
11
11
  require_relative 'quark/error' # 0 ('quark',) ()
12
+ require_relative 'quark/os' # 0 ('quark',) ()
12
13
  require_relative 'quark' # 0 () ()
13
14
  require_relative 'quark/concurrent' # 0 ('quark',) ()
14
- require_relative 'quark/os' # 0 ('quark',) ()
15
15
 
16
16
 
17
17
  def self.Dependencies; Dependencies; end
@@ -622,6 +622,19 @@ class WSClosed < ::DatawireQuarkCore::QuarkObject
622
622
  end
623
623
  WSClosed.unlazy_statics
624
624
 
625
+ ##
626
+ # On Python, log to a per-process file if MDK_LOG_MESSAGES env variable is set.
627
+
628
+ def self.log_to_file(s)
629
+
630
+ if ((::Quark.quark.os.Environment.getEnvironment().__get__("MDK_LOG_MESSAGES")) != (nil))
631
+ o = ""
632
+ end
633
+
634
+
635
+ nil
636
+ end
637
+
625
638
  def self.QuarkRuntimeWSActor; QuarkRuntimeWSActor; end
626
639
  ##
627
640
  # WSActor that uses current Quark runtime as temporary expedient.
@@ -698,6 +711,7 @@ class QuarkRuntimeWSActor < ::DatawireQuarkCore::QuarkObject
698
711
  self.logTS((" message is from ") + ((origin).to_s))
699
712
  if ((((::Quark.quark.reflect.QuarkClass.get(::DatawireQuarkCore._getClass(message))).id) == ("quark.String")) && (((self).state) == ("CONNECTED")))
700
713
  self.logTS((" send-ish, message is: ") + ((message).to_s))
714
+ ::Quark.mdk_runtime.log_to_file(("sending: ") + (::DatawireQuarkCore.cast(message) { ::String }))
701
715
  (self).socket.send(::DatawireQuarkCore.cast(message) { ::String })
702
716
  return
703
717
  end
@@ -745,6 +759,7 @@ class QuarkRuntimeWSActor < ::DatawireQuarkCore::QuarkObject
745
759
 
746
760
  self.logPrologue("onWSMessage")
747
761
  self.logTS(("onWSMessage, message is: ") + (message))
762
+ ::Quark.mdk_runtime.log_to_file(("received: ") + (message))
748
763
  (self).dispatcher.tell(self, ::Quark.mdk_runtime.WSMessage.new(message), (self).originator)
749
764
 
750
765
  nil
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-10-05 18:08:41.189562
1
+ # Quark 1.0.452 run at 2016-10-13 16:26:58.627837
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_runtime; MdkRuntime; end
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-10-05 18:08:41.189562
1
+ # Quark 1.0.452 run at 2016-10-13 16:26:58.627837
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_runtime; MdkRuntime; end
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-10-05 18:08:41.189562
1
+ # Quark 1.0.452 run at 2016-10-13 16:26:58.627837
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_runtime; MdkRuntime; end
data/lib/mdk_tracing.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-10-05 18:08:41.189562
1
+ # Quark 1.0.452 run at 2016-10-13 16:26:58.627837
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_tracing; MdkTracing; end
@@ -8,9 +8,10 @@ require_relative 'quark/reflect' # 0 ('quark',) ()
8
8
  require_relative 'mdk_tracing/api' # 0 ('mdk_tracing',) ()
9
9
  require_relative 'mdk_tracing/protocol' # 0 ('mdk_tracing',) ()
10
10
  require_relative 'mdk_protocol' # 0 () ()
11
+ require_relative 'mdk_runtime/actors' # 0 ('mdk_runtime',) ()
11
12
  require_relative 'quark' # 0 () ()
12
13
  require_relative 'mdk_runtime' # 0 () ()
13
- require_relative 'mdk_introspection' # 0 () ()
14
+ require_relative 'mdk_rtp' # 0 () ()
14
15
 
15
16
 
16
17
  def self.SharedContextInitializer; SharedContextInitializer; end
@@ -70,18 +71,18 @@ SharedContextInitializer.unlazy_statics
70
71
 
71
72
  def self.Tracer; Tracer; end
72
73
  class Tracer < ::DatawireQuarkCore::QuarkObject
73
- attr_accessor :logger, :url, :queryURL, :token, :lastPoll, :_context, :_client, :runtime
74
+ attr_accessor :logger, :lastPoll, :_context, :_client, :runtime
74
75
  extend ::DatawireQuarkCore::Static
75
76
 
76
- static quark_List_mdk_tracing_protocol_LogEvent__ref: -> { nil }
77
77
  static mdk_tracing_Tracer_ref: -> { nil }
78
78
 
79
79
 
80
80
 
81
- def initialize(runtime)
81
+ def initialize(runtime, wsclient)
82
82
 
83
83
  self.__init_fields__
84
84
  (self).runtime = runtime
85
+ (self)._client = ::Quark.mdk_tracing.protocol.TracingClient.new(self, wsclient)
85
86
 
86
87
  nil
87
88
  end
@@ -89,45 +90,45 @@ class Tracer < ::DatawireQuarkCore::QuarkObject
89
90
 
90
91
 
91
92
 
93
+ ##
94
+ # Backwards compatibility.
95
+
92
96
  def self.withURLsAndToken(url, queryURL, token)
93
97
 
94
- newTracer = ::Quark.mdk_tracing.Tracer.new(::Quark.mdk_runtime.defaultRuntime())
95
- (newTracer).url = url
96
- if (((queryURL) == (nil)) || (((queryURL).size) == (0)))
97
- parsedURL = ::Quark.quark.URL.parse(url)
98
- if (((parsedURL).scheme) == ("ws"))
99
- (parsedURL).scheme = "http"
100
- else
101
- (parsedURL).scheme = "https"
102
- end
103
- (parsedURL).path = "/api/v1/logs"
104
- (newTracer).queryURL = parsedURL.toString()
105
- else
106
- (newTracer).queryURL = queryURL
107
- end
108
- (newTracer).token = token
98
+ return ::Quark.mdk_tracing.Tracer.withURLAndToken(url, token)
99
+
100
+ nil
101
+ end
102
+
103
+ def self.withURLAndToken(url, token)
104
+
105
+ runtime = ::Quark.mdk_runtime.defaultRuntime()
106
+ wsclient = ::Quark.mdk_protocol.WSClient.new(runtime, ::Quark.mdk_rtp.getRTPParser(), url, token)
107
+ (runtime).dispatcher.startActor(wsclient)
108
+ newTracer = ::Quark.mdk_tracing.Tracer.new(runtime, wsclient)
109
+ (runtime).dispatcher.startActor(newTracer)
109
110
  return newTracer
110
111
 
111
112
  nil
112
113
  end
113
114
 
114
- def _openIfNeeded()
115
+ def onStart(dispatcher)
115
116
 
116
- if ((@_client) == (nil))
117
- @_client = ::Quark.mdk_tracing.protocol.TracingClient.new(self, @runtime)
118
- end
119
- if ((@token) == (nil))
120
- @token = ::Quark.mdk_introspection.DatawireToken.getToken(@runtime.getEnvVarsService())
121
- end
117
+ dispatcher.startActor(@_client)
122
118
 
123
119
  nil
124
120
  end
125
121
 
126
- def stop()
122
+ def onStop()
127
123
 
128
- if ((@_client) != (nil))
129
- (@runtime).dispatcher.stopActor(@_client)
130
- end
124
+ (@runtime).dispatcher.stopActor(@_client)
125
+
126
+ nil
127
+ end
128
+
129
+ def onMessage(origin, mesage)
130
+
131
+ nil
131
132
 
132
133
  nil
133
134
  end
@@ -182,9 +183,11 @@ class Tracer < ::DatawireQuarkCore::QuarkObject
182
183
  nil
183
184
  end
184
185
 
186
+ ##
187
+ # Send a log message to the server.
188
+
185
189
  def log(procUUID, level, category, text)
186
190
 
187
- self._openIfNeeded()
188
191
  ctx = self.getContext()
189
192
  ctx.tick()
190
193
  @logger.trace(("CTX ") + (ctx.toString()))
@@ -201,84 +204,13 @@ class Tracer < ::DatawireQuarkCore::QuarkObject
201
204
  nil
202
205
  end
203
206
 
204
- def poll()
205
-
206
- self._openIfNeeded()
207
- @logger.trace("Polling for logs...")
208
- rightNow = ::Quark.quark.now()
209
- result = self.query(@lastPoll, rightNow)
210
- @lastPoll = rightNow
211
- return result.andThen(::Quark.quark._BoundMethod.new(self, "deresultify", ::DatawireQuarkCore::List.new([])))
212
-
213
- nil
214
- end
215
-
216
207
  def subscribe(handler)
217
208
 
218
- self._openIfNeeded()
219
209
  @_client.subscribe(handler)
220
210
 
221
211
  nil
222
212
  end
223
213
 
224
- def deresultify(result)
225
-
226
- @logger.trace((("got ") + ((((result).result).size).to_s)) + (" log events"))
227
- return (result).result
228
-
229
- nil
230
- end
231
-
232
- ##
233
- # Query the trace logs. startTimeMillis and endTimeMillis are milliseconds since the UNIX epoch.
234
-
235
- def query(startTimeMillis, endTimeMillis)
236
-
237
- args = ::DatawireQuarkCore::List.new([])
238
- reqID = "Query "
239
- if ((startTimeMillis) >= ((0)))
240
- (args) << (("startTime=") + ((startTimeMillis).to_s))
241
- reqID = (reqID) + ((startTimeMillis).to_s)
242
- end
243
- reqID = (reqID) + ("-")
244
- if ((endTimeMillis) >= ((0)))
245
- (args) << (("endTime=") + ((endTimeMillis).to_s))
246
- reqID = (reqID) + ((endTimeMillis).to_s)
247
- end
248
- url = (self).queryURL
249
- if (((args).size) > (0))
250
- url = ((url) + ("?")) + ((args).join("&"))
251
- end
252
- req = ::DatawireQuarkCore::HTTP::Request.new(url)
253
- req.setMethod("GET")
254
- req.setHeader("Content-Type", "application/json")
255
- req.setHeader("Authorization", ("Bearer ") + ((self).token))
256
- return ::Quark.quark.IO.httpRequest(req).andThen(::Quark.quark._BoundMethod.new(self, "handleQueryResponse", ::DatawireQuarkCore::List.new([])))
257
-
258
- nil
259
- end
260
-
261
- def handleQueryResponse(response)
262
-
263
- code = response.getCode()
264
- body = response.getBody()
265
- if ((code) == (200))
266
- return ::Quark.mdk_tracing.api.GetLogEventsResult.decode(body)
267
- else
268
- error = ""
269
- if (((body).size) > (0))
270
- error = body
271
- end
272
- if (((error).size) < (1))
273
- error = ("HTTP response ") + ((code).to_s)
274
- end
275
- @logger.error(("query failure: ") + (error))
276
- return ::Quark.quark.HTTPError.new(error)
277
- end
278
-
279
- nil
280
- end
281
-
282
214
  def _getClass()
283
215
 
284
216
  return "mdk_tracing.Tracer"
@@ -291,15 +223,6 @@ class Tracer < ::DatawireQuarkCore::QuarkObject
291
223
  if ((name) == ("logger"))
292
224
  return (self).logger
293
225
  end
294
- if ((name) == ("url"))
295
- return (self).url
296
- end
297
- if ((name) == ("queryURL"))
298
- return (self).queryURL
299
- end
300
- if ((name) == ("token"))
301
- return (self).token
302
- end
303
226
  if ((name) == ("lastPoll"))
304
227
  return (self).lastPoll
305
228
  end
@@ -322,15 +245,6 @@ class Tracer < ::DatawireQuarkCore::QuarkObject
322
245
  if ((name) == ("logger"))
323
246
  (self).logger = value
324
247
  end
325
- if ((name) == ("url"))
326
- (self).url = ::DatawireQuarkCore.cast(value) { ::String }
327
- end
328
- if ((name) == ("queryURL"))
329
- (self).queryURL = ::DatawireQuarkCore.cast(value) { ::String }
330
- end
331
- if ((name) == ("token"))
332
- (self).token = ::DatawireQuarkCore.cast(value) { ::String }
333
- end
334
248
  if ((name) == ("lastPoll"))
335
249
  (self).lastPoll = ::DatawireQuarkCore.cast(value) { ::Integer }
336
250
  end
@@ -350,9 +264,6 @@ class Tracer < ::DatawireQuarkCore::QuarkObject
350
264
  def __init_fields__()
351
265
 
352
266
  self.logger = ::Quark.quark._getLogger("MDK Tracer")
353
- self.url = "wss://tracing.datawire.io/ws/v1"
354
- self.queryURL = "https://tracing.datawire.io/api/v1/logs"
355
- self.token = nil
356
267
  self.lastPoll = 0
357
268
  self._context = ::DatawireQuarkCore::TLS.new(::Quark.mdk_tracing.SharedContextInitializer.new())
358
269
  self._client = nil
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-10-05 18:08:41.189562
1
+ # Quark 1.0.452 run at 2016-10-13 16:26:58.627837
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_tracing; MdkTracing; end
@@ -124,6 +124,7 @@ class GetLogEventsResult < ::Quark.mdk_protocol.Serializable
124
124
  attr_accessor :result
125
125
  extend ::DatawireQuarkCore::Static
126
126
 
127
+ static quark_List_mdk_tracing_protocol_LogEvent__ref: -> { nil }
127
128
  static mdk_tracing_api_GetLogEventsResult_ref: -> { nil }
128
129
 
129
130
 
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-10-05 18:08:41.189562
1
+ # Quark 1.0.452 run at 2016-10-13 16:26:58.627837
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_tracing; MdkTracing; end
@@ -11,156 +11,14 @@ require_relative '../mdk_protocol' # 0 () ('mdk_tracing',)
11
11
  require_relative '../mdk_tracing' # 0 () ('mdk_tracing',)
12
12
  require_relative '../quark' # 0 () ('mdk_tracing',)
13
13
  require_relative '../mdk_runtime/actors' # 0 ('mdk_runtime',) ('mdk_tracing',)
14
- require_relative '../mdk_runtime' # 0 () ('mdk_tracing',)
15
14
 
16
15
 
17
- def self.TracingHandler; TracingHandler; end
18
- class TracingHandler < ::DatawireQuarkCore::QuarkObject
19
- extend ::DatawireQuarkCore::Static
20
-
21
- static mdk_tracing_protocol_TracingHandler_ref: -> { nil }
22
-
23
-
24
-
25
- def initialize()
26
- self.__init_fields__
27
-
28
- nil
29
- end
30
-
31
-
32
-
33
-
34
- def onLogEvent(event)
35
-
36
- nil
37
-
38
- nil
39
- end
40
-
41
- def onLogAck(ack)
42
-
43
- nil
44
-
45
- nil
46
- end
47
-
48
- def onSubscribe(sub)
49
-
50
- nil
51
-
52
- nil
53
- end
54
-
55
- def __init_fields__()
56
-
57
-
58
- nil
59
- end
60
-
61
-
62
- end
63
- TracingHandler.unlazy_statics
64
-
65
- def self.TracingEvent; TracingEvent; end
66
- ##
67
- # A single event in the stream that Tracing has to manage.
68
-
69
- class TracingEvent < ::Quark.mdk_protocol.ProtocolEvent
70
- extend ::DatawireQuarkCore::Static
71
-
72
- static mdk_tracing_protocol_TracingEvent_ref: -> { nil }
73
-
74
-
75
-
76
- def initialize()
77
-
78
- super()
79
-
80
- nil
81
- end
82
-
83
-
84
-
85
-
86
- def self.construct(type)
87
-
88
- result = ::Quark.mdk_protocol.ProtocolEvent.construct(type)
89
- if ((result) != (nil))
90
- return result
91
- end
92
- if (::Quark.mdk_tracing.protocol.LogEvent._discriminator.matches(type))
93
- return ::Quark.mdk_tracing.protocol.LogEvent.new()
94
- end
95
- if (::Quark.mdk_tracing.protocol.LogAck._discriminator.matches(type))
96
- return ::Quark.mdk_tracing.protocol.LogAck.new()
97
- end
98
- if (::Quark.mdk_tracing.protocol.Subscribe._discriminator.matches(type))
99
- return ::Quark.mdk_tracing.protocol.Subscribe.new()
100
- end
101
- return ::DatawireQuarkCore.cast(nil) { ::Quark.mdk_protocol.ProtocolEvent }
102
-
103
- nil
104
- end
105
-
106
- def self.decode(encoded)
107
-
108
- return ::DatawireQuarkCore.cast(::Quark.mdk_protocol.Serializable.decodeClassName("mdk_tracing.protocol.TracingEvent", encoded)) { ::Quark.mdk_protocol.ProtocolEvent }
109
-
110
- nil
111
- end
112
-
113
- def dispatch(handler)
114
-
115
- self.dispatchTracingEvent(::DatawireQuarkCore.cast(handler) { ::Quark.mdk_tracing.protocol.TracingHandler })
116
-
117
- nil
118
- end
119
-
120
- def dispatchTracingEvent(handler)
121
- raise NotImplementedError, '`TracingEvent.dispatchTracingEvent` is an abstract method'
122
-
123
- nil
124
- end
125
-
126
- def _getClass()
127
-
128
- return "mdk_tracing.protocol.TracingEvent"
129
-
130
- nil
131
- end
132
-
133
- def _getField(name)
134
-
135
- return nil
136
-
137
- nil
138
- end
139
-
140
- def _setField(name, value)
141
-
142
- nil
143
-
144
- nil
145
- end
146
-
147
- def __init_fields__()
148
-
149
- super
150
-
151
- nil
152
- end
153
-
154
-
155
- end
156
- TracingEvent.unlazy_statics
157
-
158
16
  def self.LogEvent; LogEvent; end
159
- class LogEvent < ::Quark.mdk_tracing.protocol.TracingEvent
17
+ class LogEvent < ::Quark.mdk_protocol.Serializable
160
18
  attr_accessor :context, :timestamp, :node, :level, :category, :contentType, :text, :sequence, :sync
161
19
  extend ::DatawireQuarkCore::Static
162
20
 
163
- static _discriminator: -> { ::Quark.mdk_protocol.anyof(::DatawireQuarkCore::List.new(["log"])) }
21
+ static _json_type: -> { "log" }
164
22
  static mdk_tracing_protocol_LogEvent_ref: -> { nil }
165
23
 
166
24
 
@@ -175,13 +33,6 @@ class LogEvent < ::Quark.mdk_tracing.protocol.TracingEvent
175
33
 
176
34
 
177
35
 
178
- def dispatchTracingEvent(handler)
179
-
180
- handler.onLogEvent(self)
181
-
182
- nil
183
- end
184
-
185
36
  def toString()
186
37
 
187
38
  return (((((((((((((((("<LogEvent ") + ((@sequence).to_s)) + (" @")) + ((@timestamp).to_s)) + (" ")) + (@context.toString())) + (", ")) + (@node)) + (", ")) + (@level)) + (", ")) + (@category)) + (", ")) + (@contentType)) + (", ")) + (@text)) + (">")
@@ -198,8 +49,8 @@ class LogEvent < ::Quark.mdk_tracing.protocol.TracingEvent
198
49
 
199
50
  def _getField(name)
200
51
 
201
- if ((name) == ("_discriminator"))
202
- return ::Quark.mdk_tracing.protocol.LogEvent._discriminator
52
+ if ((name) == ("_json_type"))
53
+ return ::Quark.mdk_tracing.protocol.LogEvent._json_type
203
54
  end
204
55
  if ((name) == ("context"))
205
56
  return (self).context
@@ -235,8 +86,8 @@ class LogEvent < ::Quark.mdk_tracing.protocol.TracingEvent
235
86
 
236
87
  def _setField(name, value)
237
88
 
238
- if ((name) == ("_discriminator"))
239
- ::Quark.mdk_tracing.protocol.LogEvent._discriminator = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_protocol.Discriminator }
89
+ if ((name) == ("_json_type"))
90
+ ::Quark.mdk_tracing.protocol.LogEvent._json_type = ::DatawireQuarkCore.cast(value) { ::String }
240
91
  end
241
92
  if ((name) == ("context"))
242
93
  (self).context = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_protocol.SharedContext }
@@ -290,10 +141,10 @@ end
290
141
  LogEvent.unlazy_statics
291
142
 
292
143
  def self.Subscribe; Subscribe; end
293
- class Subscribe < ::Quark.mdk_tracing.protocol.TracingEvent
144
+ class Subscribe < ::Quark.mdk_protocol.Serializable
294
145
  extend ::DatawireQuarkCore::Static
295
146
 
296
- static _discriminator: -> { ::Quark.mdk_protocol.anyof(::DatawireQuarkCore::List.new(["subscribe"])) }
147
+ static _json_type: -> { "subscribe" }
297
148
  static mdk_tracing_protocol_Subscribe_ref: -> { nil }
298
149
 
299
150
 
@@ -308,13 +159,6 @@ class Subscribe < ::Quark.mdk_tracing.protocol.TracingEvent
308
159
 
309
160
 
310
161
 
311
- def dispatchTracingEvent(handler)
312
-
313
- handler.onSubscribe(self)
314
-
315
- nil
316
- end
317
-
318
162
  def toString()
319
163
 
320
164
  return "<Subscribe>"
@@ -331,8 +175,8 @@ class Subscribe < ::Quark.mdk_tracing.protocol.TracingEvent
331
175
 
332
176
  def _getField(name)
333
177
 
334
- if ((name) == ("_discriminator"))
335
- return ::Quark.mdk_tracing.protocol.Subscribe._discriminator
178
+ if ((name) == ("_json_type"))
179
+ return ::Quark.mdk_tracing.protocol.Subscribe._json_type
336
180
  end
337
181
  return nil
338
182
 
@@ -341,8 +185,8 @@ class Subscribe < ::Quark.mdk_tracing.protocol.TracingEvent
341
185
 
342
186
  def _setField(name, value)
343
187
 
344
- if ((name) == ("_discriminator"))
345
- ::Quark.mdk_tracing.protocol.Subscribe._discriminator = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_protocol.Discriminator }
188
+ if ((name) == ("_json_type"))
189
+ ::Quark.mdk_tracing.protocol.Subscribe._json_type = ::DatawireQuarkCore.cast(value) { ::String }
346
190
  end
347
191
 
348
192
  nil
@@ -360,11 +204,11 @@ end
360
204
  Subscribe.unlazy_statics
361
205
 
362
206
  def self.LogAck; LogAck; end
363
- class LogAck < ::Quark.mdk_tracing.protocol.TracingEvent
207
+ class LogAck < ::Quark.mdk_protocol.Serializable
364
208
  attr_accessor :sequence
365
209
  extend ::DatawireQuarkCore::Static
366
210
 
367
- static _discriminator: -> { ::Quark.mdk_protocol.anyof(::DatawireQuarkCore::List.new(["logack", "mdk_tracing.protocol.LogAckEvent"])) }
211
+ static _json_type: -> { "logack" }
368
212
  static mdk_tracing_protocol_LogAck_ref: -> { nil }
369
213
 
370
214
 
@@ -379,13 +223,6 @@ class LogAck < ::Quark.mdk_tracing.protocol.TracingEvent
379
223
 
380
224
 
381
225
 
382
- def dispatchTracingEvent(handler)
383
-
384
- handler.onLogAck(self)
385
-
386
- nil
387
- end
388
-
389
226
  def toString()
390
227
 
391
228
  return (("<LogAck ") + ((@sequence).to_s)) + (">")
@@ -402,8 +239,8 @@ class LogAck < ::Quark.mdk_tracing.protocol.TracingEvent
402
239
 
403
240
  def _getField(name)
404
241
 
405
- if ((name) == ("_discriminator"))
406
- return ::Quark.mdk_tracing.protocol.LogAck._discriminator
242
+ if ((name) == ("_json_type"))
243
+ return ::Quark.mdk_tracing.protocol.LogAck._json_type
407
244
  end
408
245
  if ((name) == ("sequence"))
409
246
  return (self).sequence
@@ -415,8 +252,8 @@ class LogAck < ::Quark.mdk_tracing.protocol.TracingEvent
415
252
 
416
253
  def _setField(name, value)
417
254
 
418
- if ((name) == ("_discriminator"))
419
- ::Quark.mdk_tracing.protocol.LogAck._discriminator = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_protocol.Discriminator }
255
+ if ((name) == ("_json_type"))
256
+ ::Quark.mdk_tracing.protocol.LogAck._json_type = ::DatawireQuarkCore.cast(value) { ::String }
420
257
  end
421
258
  if ((name) == ("sequence"))
422
259
  (self).sequence = ::DatawireQuarkCore.cast(value) { ::Integer }
@@ -438,19 +275,20 @@ end
438
275
  LogAck.unlazy_statics
439
276
 
440
277
  def self.TracingClient; TracingClient; end
441
- class TracingClient < ::Quark.mdk_protocol.WSClient
442
- attr_accessor :_tracer, :_started, :_mutex, :_handler, :_dispatcher, :_syncRequestPeriod, :_syncInFlightMax, :_buffered, :_inFlight, :_logged, :_sent, :_failedSends, :_recorded, :_lastSyncTime, :_myLog
278
+ class TracingClient < ::DatawireQuarkCore::QuarkObject
279
+ attr_accessor :_tracer, :_started, :_mutex, :_handler, :_dispatcher, :_syncRequestPeriod, :_syncInFlightMax, :_buffered, :_inFlight, :_logged, :_sent, :_failedSends, :_recorded, :_lastSyncTime, :_wsclient, :_sock, :_myLog
443
280
  extend ::DatawireQuarkCore::Static
444
281
 
445
282
  static mdk_tracing_protocol_TracingClient_ref: -> { nil }
446
283
 
447
284
 
448
285
 
449
- def initialize(tracer, runtime)
286
+ def initialize(tracer, wsclient)
450
287
 
451
- super(runtime)
452
- (self)._dispatcher = (runtime).dispatcher
288
+ self.__init_fields__
453
289
  @_tracer = tracer
290
+ @_wsclient = wsclient
291
+ wsclient.subscribe(self)
454
292
 
455
293
  nil
456
294
  end
@@ -466,84 +304,59 @@ class TracingClient < ::Quark.mdk_protocol.WSClient
466
304
  nil
467
305
  end
468
306
 
469
- def url()
470
-
471
- return (@_tracer).url
472
-
473
- nil
474
- end
475
-
476
- def token()
477
-
478
- return (@_tracer).token
479
-
480
- nil
481
- end
307
+ ##
308
+ # Attach a subscriber that will receive results of queries.
482
309
 
483
- def isStarted()
310
+ def subscribe(handler)
484
311
 
485
312
  @_mutex.acquire()
486
- result = ((@_started) || (((@_buffered).size) > (0))) || ((@_handler) != (nil))
313
+ @_handler = handler
487
314
  @_mutex.release()
488
- return result
489
315
 
490
316
  nil
491
317
  end
492
318
 
493
- def _startIfNeeded()
319
+ def onStart(dispatcher)
494
320
 
495
- if (!(@_started))
496
- (self)._dispatcher.startActor(self)
497
- @_started = true
498
- end
321
+ (self)._dispatcher = dispatcher
499
322
 
500
323
  nil
501
324
  end
502
325
 
503
- def subscribe(handler)
326
+ def onStop()
504
327
 
505
- @_mutex.acquire()
506
- @_handler = handler
507
- self._startIfNeeded()
508
- @_mutex.release()
509
-
510
328
  nil
511
- end
512
-
513
- def onStart(dispatcher)
514
-
515
- method(:onStart).super_method.call(dispatcher)
516
329
 
517
330
  nil
518
331
  end
519
332
 
520
- def onStop()
333
+ def onMessage(origin, message)
521
334
 
522
- @_started = false
523
- method(:onStop).super_method.call()
335
+ ::Quark.mdk_protocol._subscriberDispatch(self, message)
524
336
 
525
337
  nil
526
338
  end
527
339
 
528
- def startup()
340
+ def onWSConnected(websock)
529
341
 
530
342
  @_mutex.acquire()
343
+ (self)._sock = websock
531
344
  while (((@_inFlight).size) > (0)) do
532
345
  evt = (@_inFlight).delete_at(((@_inFlight).size) - (1))
533
346
  (@_buffered).insert((0), (evt))
534
347
  @_failedSends = (@_failedSends) + ((1))
535
348
  self._debug(("no ack for #") + (((evt).sequence).to_s))
536
349
  end
537
- self._debug(("Starting up! with connection ") + (((self).sock).to_s))
350
+ self._debug(("Starting up! with connection ") + (((self)._sock).to_s))
538
351
  if ((@_handler) != (nil))
539
- (self).dispatcher.tell(self, ::Quark.mdk_tracing.protocol.Subscribe.new().encode(), (self).sock)
352
+ (self)._dispatcher.tell(self, ::Quark.mdk_tracing.protocol.Subscribe.new().encode(), (self)._sock)
540
353
  end
541
354
  @_mutex.release()
542
355
 
543
356
  nil
544
357
  end
545
358
 
546
- def pump()
359
+ def onPump()
547
360
 
548
361
  @_mutex.acquire()
549
362
  while (((@_buffered).size) > (0)) do
@@ -555,23 +368,29 @@ class TracingClient < ::Quark.mdk_protocol.WSClient
555
368
  @_lastSyncTime = (evt).timestamp
556
369
  debugSuffix = " with sync set"
557
370
  end
558
- (self).dispatcher.tell(self, evt.encode(), (self).sock)
371
+ (self)._dispatcher.tell(self, evt.encode(), (self)._sock)
559
372
  (evt).sync = 0
560
373
  @_sent = (@_sent) + ((1))
561
- self._debug((((("sent #") + (((evt).sequence).to_s)) + (debugSuffix)) + (" to ")) + (((self).sock).to_s))
374
+ self._debug((((("sent #") + (((evt).sequence).to_s)) + (debugSuffix)) + (" to ")) + (((self)._sock).to_s))
562
375
  end
563
376
  @_mutex.release()
564
377
 
565
378
  nil
566
379
  end
567
380
 
568
- def onWSMessage(message)
381
+ def onMessageFromServer(message)
569
382
 
570
- event = ::Quark.mdk_tracing.protocol.TracingEvent.decode(message)
571
- if ((event) == (nil))
383
+ type = (::Quark.quark.reflect.QuarkClass.get(::DatawireQuarkCore._getClass(message))).id
384
+ if ((type) == ("mdk_tracing.protocol.LogEvent"))
385
+ event = ::DatawireQuarkCore.cast(message) { ::Quark.mdk_tracing.protocol.LogEvent }
386
+ self.onLogEvent(event)
387
+ return
388
+ end
389
+ if ((type) == ("mdk_tracing.protocol.LogAck"))
390
+ ack = ::DatawireQuarkCore.cast(message) { ::Quark.mdk_tracing.protocol.LogAck }
391
+ self.onLogAck(ack)
572
392
  return
573
393
  end
574
- event.dispatch(self)
575
394
 
576
395
  nil
577
396
  end
@@ -604,6 +423,9 @@ class TracingClient < ::Quark.mdk_protocol.WSClient
604
423
  nil
605
424
  end
606
425
 
426
+ ##
427
+ # Queue a log message for delivery to the server.
428
+
607
429
  def log(evt)
608
430
 
609
431
  @_mutex.acquire()
@@ -612,7 +434,6 @@ class TracingClient < ::Quark.mdk_protocol.WSClient
612
434
  @_logged = (@_logged) + ((1))
613
435
  (@_buffered) << (evt)
614
436
  self._debug(("logged #") + (((evt).sequence).to_s))
615
- self._startIfNeeded()
616
437
  @_mutex.release()
617
438
 
618
439
  nil
@@ -627,48 +448,6 @@ class TracingClient < ::Quark.mdk_protocol.WSClient
627
448
 
628
449
  def _getField(name)
629
450
 
630
- if ((name) == ("logger"))
631
- return (self).logger
632
- end
633
- if ((name) == ("firstDelay"))
634
- return (self).firstDelay
635
- end
636
- if ((name) == ("maxDelay"))
637
- return (self).maxDelay
638
- end
639
- if ((name) == ("reconnectDelay"))
640
- return (self).reconnectDelay
641
- end
642
- if ((name) == ("ttl"))
643
- return (self).ttl
644
- end
645
- if ((name) == ("tick"))
646
- return (self).tick
647
- end
648
- if ((name) == ("sock"))
649
- return (self).sock
650
- end
651
- if ((name) == ("sockUrl"))
652
- return (self).sockUrl
653
- end
654
- if ((name) == ("lastConnectAttempt"))
655
- return (self).lastConnectAttempt
656
- end
657
- if ((name) == ("lastHeartbeat"))
658
- return (self).lastHeartbeat
659
- end
660
- if ((name) == ("timeService"))
661
- return (self).timeService
662
- end
663
- if ((name) == ("schedulingActor"))
664
- return (self).schedulingActor
665
- end
666
- if ((name) == ("websockets"))
667
- return (self).websockets
668
- end
669
- if ((name) == ("dispatcher"))
670
- return (self).dispatcher
671
- end
672
451
  if ((name) == ("_tracer"))
673
452
  return (self)._tracer
674
453
  end
@@ -711,6 +490,12 @@ class TracingClient < ::Quark.mdk_protocol.WSClient
711
490
  if ((name) == ("_lastSyncTime"))
712
491
  return (self)._lastSyncTime
713
492
  end
493
+ if ((name) == ("_wsclient"))
494
+ return (self)._wsclient
495
+ end
496
+ if ((name) == ("_sock"))
497
+ return (self)._sock
498
+ end
714
499
  if ((name) == ("_myLog"))
715
500
  return (self)._myLog
716
501
  end
@@ -721,48 +506,6 @@ class TracingClient < ::Quark.mdk_protocol.WSClient
721
506
 
722
507
  def _setField(name, value)
723
508
 
724
- if ((name) == ("logger"))
725
- (self).logger = value
726
- end
727
- if ((name) == ("firstDelay"))
728
- (self).firstDelay = ::DatawireQuarkCore.cast(value) { ::Float }
729
- end
730
- if ((name) == ("maxDelay"))
731
- (self).maxDelay = ::DatawireQuarkCore.cast(value) { ::Float }
732
- end
733
- if ((name) == ("reconnectDelay"))
734
- (self).reconnectDelay = ::DatawireQuarkCore.cast(value) { ::Float }
735
- end
736
- if ((name) == ("ttl"))
737
- (self).ttl = ::DatawireQuarkCore.cast(value) { ::Float }
738
- end
739
- if ((name) == ("tick"))
740
- (self).tick = ::DatawireQuarkCore.cast(value) { ::Float }
741
- end
742
- if ((name) == ("sock"))
743
- (self).sock = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.WSActor }
744
- end
745
- if ((name) == ("sockUrl"))
746
- (self).sockUrl = ::DatawireQuarkCore.cast(value) { ::String }
747
- end
748
- if ((name) == ("lastConnectAttempt"))
749
- (self).lastConnectAttempt = ::DatawireQuarkCore.cast(value) { ::Integer }
750
- end
751
- if ((name) == ("lastHeartbeat"))
752
- (self).lastHeartbeat = ::DatawireQuarkCore.cast(value) { ::Integer }
753
- end
754
- if ((name) == ("timeService"))
755
- (self).timeService = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.Time }
756
- end
757
- if ((name) == ("schedulingActor"))
758
- (self).schedulingActor = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.Actor }
759
- end
760
- if ((name) == ("websockets"))
761
- (self).websockets = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.WebSockets }
762
- end
763
- if ((name) == ("dispatcher"))
764
- (self).dispatcher = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.MessageDispatcher }
765
- end
766
509
  if ((name) == ("_tracer"))
767
510
  (self)._tracer = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_tracing.Tracer }
768
511
  end
@@ -805,6 +548,12 @@ class TracingClient < ::Quark.mdk_protocol.WSClient
805
548
  if ((name) == ("_lastSyncTime"))
806
549
  (self)._lastSyncTime = ::DatawireQuarkCore.cast(value) { ::Integer }
807
550
  end
551
+ if ((name) == ("_wsclient"))
552
+ (self)._wsclient = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_protocol.WSClient }
553
+ end
554
+ if ((name) == ("_sock"))
555
+ (self)._sock = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.Actor }
556
+ end
808
557
  if ((name) == ("_myLog"))
809
558
  (self)._myLog = value
810
559
  end
@@ -812,16 +561,8 @@ class TracingClient < ::Quark.mdk_protocol.WSClient
812
561
  nil
813
562
  end
814
563
 
815
- def onSubscribe(sub)
816
-
817
- nil
818
-
819
- nil
820
- end
821
-
822
564
  def __init_fields__()
823
565
 
824
- super
825
566
  self._tracer = nil
826
567
  self._started = false
827
568
  self._mutex = ::DatawireQuarkCore::Lock.new()
@@ -836,6 +577,8 @@ class TracingClient < ::Quark.mdk_protocol.WSClient
836
577
  self._failedSends = 0
837
578
  self._recorded = 0
838
579
  self._lastSyncTime = 0
580
+ self._wsclient = nil
581
+ self._sock = nil
839
582
  self._myLog = ::Quark.quark._getLogger("TracingClient")
840
583
 
841
584
  nil