Class: Quark::MdkProtocol::SendWithAcks
- Inherits:
-
DatawireQuarkCore::QuarkObject
- Object
- DatawireQuarkCore::QuarkObject
- Quark::MdkProtocol::SendWithAcks
- Extended by:
- DatawireQuarkCore::Static
- Defined in:
- lib/mdk_protocol.rb
Constant Summary
Constants included from DatawireQuarkCore::Static
DatawireQuarkCore::Static::Unassigned
Instance Attribute Summary collapse
-
#_added ⇒ Object
Returns the value of attribute _added.
-
#_buffered ⇒ Object
Returns the value of attribute _buffered.
-
#_inFlight ⇒ Object
Returns the value of attribute _inFlight.
-
#_myLog ⇒ Object
Returns the value of attribute _myLog.
-
#_recorded ⇒ Object
Returns the value of attribute _recorded.
-
#_sent ⇒ Object
Returns the value of attribute _sent.
Instance Method Summary collapse
- #__init_fields__ ⇒ Object
- #_debug(message) ⇒ Object
- #_getClass ⇒ Object
- #_getField(name) ⇒ Object
- #_setField(name, value) ⇒ Object
-
#initialize ⇒ SendWithAcks
constructor
A new instance of SendWithAcks.
-
#onAck(sequence) ⇒ Object
Called when receiving acknowledgement from other side.
-
#onConnected(sender) ⇒ Object
Call when (re)connected to other side.
-
#onPump(sender) ⇒ Object
Call to send buffered messages.
-
#send(json_type, event) ⇒ Object
Send an event.
Methods included from DatawireQuarkCore::Static
_lazy_statics, static, unlazy_statics
Methods inherited from DatawireQuarkCore::QuarkObject
Constructor Details
#initialize ⇒ SendWithAcks
Returns a new instance of SendWithAcks.
1958 1959 1960 1961 1962 |
# File 'lib/mdk_protocol.rb', line 1958 def initialize() self.__init_fields__ nil end |
Instance Attribute Details
#_added ⇒ Object
Returns the value of attribute _added.
1950 1951 1952 |
# File 'lib/mdk_protocol.rb', line 1950 def _added @_added end |
#_buffered ⇒ Object
Returns the value of attribute _buffered.
1950 1951 1952 |
# File 'lib/mdk_protocol.rb', line 1950 def _buffered @_buffered end |
#_inFlight ⇒ Object
Returns the value of attribute _inFlight.
1950 1951 1952 |
# File 'lib/mdk_protocol.rb', line 1950 def _inFlight @_inFlight end |
#_myLog ⇒ Object
Returns the value of attribute _myLog.
1950 1951 1952 |
# File 'lib/mdk_protocol.rb', line 1950 def _myLog @_myLog end |
#_recorded ⇒ Object
Returns the value of attribute _recorded.
1950 1951 1952 |
# File 'lib/mdk_protocol.rb', line 1950 def _recorded @_recorded end |
#_sent ⇒ Object
Returns the value of attribute _sent.
1950 1951 1952 |
# File 'lib/mdk_protocol.rb', line 1950 def _sent @_sent end |
Instance Method Details
#__init_fields__ ⇒ Object
2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 |
# File 'lib/mdk_protocol.rb', line 2086 def __init_fields__() self._buffered = {} self._inFlight = {} self._added = 0 self._sent = 0 self._recorded = 0 self._myLog = ::Quark.quark._getLogger("SendWithAcks") nil end |
#_debug(message) ⇒ Object
1967 1968 1969 1970 1971 1972 1973 |
# File 'lib/mdk_protocol.rb', line 1967 def _debug() s = (((("[") + (((::DatawireQuarkCore::List.new((@_buffered).keys)).size).to_s)) + (" buf, ")) + (((::DatawireQuarkCore::List.new((@_inFlight).keys)).size).to_s)) + (" inf] ") @_myLog.debug((s) + ()) nil end |
#_getClass ⇒ Object
2030 2031 2032 2033 2034 2035 |
# File 'lib/mdk_protocol.rb', line 2030 def _getClass() return "mdk_protocol.SendWithAcks" nil end |
#_getField(name) ⇒ Object
2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 |
# File 'lib/mdk_protocol.rb', line 2037 def _getField(name) if ((name) == ("_buffered")) return (self)._buffered end if ((name) == ("_inFlight")) return (self)._inFlight end if ((name) == ("_added")) return (self)._added end if ((name) == ("_sent")) return (self)._sent end if ((name) == ("_recorded")) return (self)._recorded end if ((name) == ("_myLog")) return (self)._myLog end return nil nil end |
#_setField(name, value) ⇒ Object
2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 |
# File 'lib/mdk_protocol.rb', line 2062 def _setField(name, value) if ((name) == ("_buffered")) (self)._buffered = ::DatawireQuarkCore.cast(value) { ::Hash } end if ((name) == ("_inFlight")) (self)._inFlight = ::DatawireQuarkCore.cast(value) { ::Hash } end if ((name) == ("_added")) (self)._added = ::DatawireQuarkCore.cast(value) { ::Integer } end if ((name) == ("_sent")) (self)._sent = ::DatawireQuarkCore.cast(value) { ::Integer } end if ((name) == ("_recorded")) (self)._recorded = ::DatawireQuarkCore.cast(value) { ::Integer } end if ((name) == ("_myLog")) (self)._myLog = value end nil end |
#onAck(sequence) ⇒ Object
Called when receiving acknowledgement from other side.
2008 2009 2010 2011 2012 2013 2014 2015 |
# File 'lib/mdk_protocol.rb', line 2008 def onAck(sequence) (@_inFlight).delete(sequence) @_recorded = (@_recorded) + ((1)) self._debug(((("ack #") + ((sequence).to_s)) + (", discarding #")) + ((sequence).to_s)) nil end |
#onConnected(sender) ⇒ Object
Call when (re)connected to other side.
1978 1979 1980 1981 1982 1983 1984 1985 |
# File 'lib/mdk_protocol.rb', line 1978 def onConnected(sender) (@_buffered).merge!(@_inFlight) @_inFlight = {} self.onPump(sender) nil end |
#onPump(sender) ⇒ Object
Call to send buffered messages.
1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 |
# File 'lib/mdk_protocol.rb', line 1990 def onPump(sender) seqs = ::DatawireQuarkCore::List.new((@_buffered).keys) (seqs).sort! idx = 0 while (((seqs).size) > (idx)) do evt = (@_buffered).delete((seqs)[idx]) (@_inFlight)[(evt).sequence] = (evt) sender.send(evt) idx = (idx) + (1) end nil end |
#send(json_type, event) ⇒ Object
Send an event.
2020 2021 2022 2023 2024 2025 2026 2027 2028 |
# File 'lib/mdk_protocol.rb', line 2020 def send(json_type, event) wrapper = ::Quark.mdk_protocol.AckableEvent.new(json_type, event, @_added) @_added = (@_added) + ((1)) (@_buffered)[(wrapper).sequence] = (wrapper) self._debug(("logged #") + (((wrapper).sequence).to_s)) nil end |