Ravn::Net::

Gateway class

Abstract gateway class

Attributes

startup_message R

The system metadata message delivered to the gateway when the system starts

Public Class Methods

inherited( klass )

Register interest in the BDE startup packet.

# File lib/ravn/net/gateway.rb, line 27
def self::inherited( klass )
        super
        klass.register_message_handler 'sys.startup', :retain_startup_message
        klass.attr_reader :startup_message
end
new( * )

Add some instance variables to all gateways.

# File lib/ravn/net/gateway.rb, line 35
def initialize( * )
        @startup_message = nil

        super
end

Public Instance Methods

default_executor()

Use the IO execution thread pool be default to avoid deadlocking non-io threads

# File lib/ravn/net/gateway.rb, line 70
def default_executor
        return Concurrent.global_io_executor
end
discover()

Do any discovery of the adapted gateway that needs to be done during startup.

# File lib/ravn/net/gateway.rb, line 58
def discover
        # No-op by default
end
retain_startup_message( message )

When the system startup message is seen, save it for optional later replay to connecting clients.

# File lib/ravn/net/gateway.rb, line 77
def retain_startup_message( message )
        self.log.debug "Caching startup message: %p" % [ message ]
        @startup_message = message
end
start()

Actor API — start the wrapper.

# File lib/ravn/net/gateway.rb, line 52
def start
        self.discover
end
stop()

Actor API — stop the wrapper.

# File lib/ravn/net/gateway.rb, line 64
def stop
        # No-op
end