Sha256: b41a1a89115db6c843cba8c9efb2724bd19046bf98ba3adf25a821ca2578b835

Contents?: true

Size: 823 Bytes

Versions: 3

Compression:

Stored size: 823 Bytes

Contents

require 'lifx/observable'

module LIFX
  # @api private
  class Transport
    include Logging
    include Observable

    attr_reader :host, :port

    def initialize(host, port, ignore_unpackable_messages: true)
      @host = host
      @port = port
      @ignore_unpackable_messages = ignore_unpackable_messages
    end

    def listen
      raise NotImplementedError
    end

    def write(message)
      raise NotImplementedError
    end

    def close
      remove_observers
    end

    def to_s
      %Q{#<#{self.class.name} #{host}:#{port}>}
    end
    alias_method :inspect, :to_s

    def observer_callback_definition
      {
        message_received: -> (message: nil, ip: nil, transport: nil) {},
        disconnected: -> {}
      }
    end
  end
end

require 'lifx/transport/udp'
require 'lifx/transport/tcp'

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lifx-0.4.11 lib/lifx/transport.rb
lifx-0.4.10 lib/lifx/transport.rb
lifx-0.4.8 lib/lifx/transport.rb