datawire_mdk 2.0.15 → 2.0.16

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