Class: Quark::MdkMetrics::MetricsClient

Inherits:
DatawireQuarkCore::QuarkObject show all
Extended by:
DatawireQuarkCore::Static
Defined in:
lib/mdk_metrics.rb

Overview

Mini-protocol for sending metrics to MCP.

Constant Summary

Constants included from DatawireQuarkCore::Static

DatawireQuarkCore::Static::Unassigned

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DatawireQuarkCore::Static

_lazy_statics, static, unlazy_statics

Methods inherited from DatawireQuarkCore::QuarkObject

#to_s

Constructor Details

#initialize(wsclient) ⇒ MetricsClient

Returns a new instance of MetricsClient.



237
238
239
240
241
242
243
# File 'lib/mdk_metrics.rb', line 237

def initialize(wsclient)
    
    self.__init_fields__
    wsclient.subscribe(self)

    nil
end

Instance Attribute Details

#_dispatcherObject

Returns the value of attribute _dispatcher.



230
231
232
# File 'lib/mdk_metrics.rb', line 230

def _dispatcher
  @_dispatcher
end

#_sendWithAcksObject

Returns the value of attribute _sendWithAcks.



230
231
232
# File 'lib/mdk_metrics.rb', line 230

def _sendWithAcks
  @_sendWithAcks
end

#_sockObject

Returns the value of attribute _sock.



230
231
232
# File 'lib/mdk_metrics.rb', line 230

def _sock
  @_sock
end

Instance Method Details

#__init_fields__Object



344
345
346
347
348
349
350
351
# File 'lib/mdk_metrics.rb', line 344

def __init_fields__()
    
    self._dispatcher = nil
    self._sock = nil
    self._sendWithAcks = ::Quark.mdk_protocol.SendWithAcks.new()

    nil
end

#_getClassObject



306
307
308
309
310
311
# File 'lib/mdk_metrics.rb', line 306

def _getClass()
    
    return "mdk_metrics.MetricsClient"

    nil
end

#_getField(name) ⇒ Object



313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
# File 'lib/mdk_metrics.rb', line 313

def _getField(name)
    
    if ((name) == ("_dispatcher"))
        return (self)._dispatcher
    end
    if ((name) == ("_sock"))
        return (self)._sock
    end
    if ((name) == ("_sendWithAcks"))
        return (self)._sendWithAcks
    end
    return nil

    nil
end

#_setField(name, value) ⇒ Object



329
330
331
332
333
334
335
336
337
338
339
340
341
342
# File 'lib/mdk_metrics.rb', line 329

def _setField(name, value)
    
    if ((name) == ("_dispatcher"))
        (self)._dispatcher = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.MessageDispatcher }
    end
    if ((name) == ("_sock"))
        (self)._sock = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.Actor }
    end
    if ((name) == ("_sendWithAcks"))
        (self)._sendWithAcks = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_protocol.SendWithAcks }
    end

    nil
end

#onMessage(origin, message) ⇒ Object



272
273
274
275
276
277
# File 'lib/mdk_metrics.rb', line 272

def onMessage(origin, message)
    
    ::Quark.mdk_protocol._subscriberDispatch(self, message)

    nil
end

#onMessageFromServer(message) ⇒ Object



294
295
296
297
298
299
300
301
302
303
304
# File 'lib/mdk_metrics.rb', line 294

def onMessageFromServer(message)
    
    type = (::Quark.quark.reflect.QuarkClass.get(::DatawireQuarkCore._getClass(message))).id
    if ((type) == ("metrics.InteractionAck"))
        ack = ::DatawireQuarkCore.cast(message) { ::Quark.mdk_metrics.InteractionAck }
        (self)._sendWithAcks.onAck((ack).sequence)
        return
    end

    nil
end

#onPumpObject



287
288
289
290
291
292
# File 'lib/mdk_metrics.rb', line 287

def onPump()
    
    (self)._sendWithAcks.onPump(::Quark.mdk_protocol.WSSend.new(self, (self)._dispatcher, (self)._sock))

    nil
end

#onStart(dispatcher) ⇒ Object



258
259
260
261
262
263
# File 'lib/mdk_metrics.rb', line 258

def onStart(dispatcher)
    
    (self)._dispatcher = dispatcher

    nil
end

#onStopObject



265
266
267
268
269
270
# File 'lib/mdk_metrics.rb', line 265

def onStop()
    
    nil

    nil
end

#onWSConnected(websock) ⇒ Object



279
280
281
282
283
284
285
# File 'lib/mdk_metrics.rb', line 279

def onWSConnected(websock)
    
    (self)._sock = websock
    (self)._sendWithAcks.onConnected(::Quark.mdk_protocol.WSSend.new(self, (self)._dispatcher, (self)._sock))

    nil
end

#sendInteraction(evt) ⇒ Object

Queue info about interaction to be sent to the MCP.



251
252
253
254
255
256
# File 'lib/mdk_metrics.rb', line 251

def sendInteraction(evt)
    
    (self)._sendWithAcks.send(::Quark.mdk_metrics.InteractionEvent._json_type, evt)

    nil
end