Sha256: 886f021784c29100c65832e139d2f6aeafdf87dd3a36253e99e13fcb8ed20890

Contents?: true

Size: 532 Bytes

Versions: 17

Compression:

Stored size: 532 Bytes

Contents

module Pione
  module Relay
    class Trampoline
      def initialize(uri, config)
        @obj = DRb::DRbObject.new_with_uri(uri)
        @protocol = TransmitterSocket.open_server(uri, config)
      end

      undef :to_s

      def method_missing(msg_id, *arg, &b)
        req_id = @protocol.send_request(@obj, msg_id, arg, b)
        @protocol.reader_thread
        succ, result = DRb.waiter_table.take(req_id, msg_id, arg)
        unless succ
          raise result
        end
        return result
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
pione-0.5.0 lib/pione/relay/trampoline.rb
pione-0.5.0.alpha.2 lib/pione/relay/trampoline.rb
pione-0.5.0.alpha.1 lib/pione/relay/trampoline.rb
pione-0.4.2 lib/pione/relay/trampoline.rb
pione-0.4.1 lib/pione/relay/trampoline.rb
pione-0.4.0 lib/pione/relay/trampoline.rb
pione-0.3.2 lib/pione/relay/trampoline.rb
pione-0.3.1 lib/pione/relay/trampoline.rb
pione-0.3.0 lib/pione/relay/trampoline.rb
pione-0.2.2 lib/pione/relay/trampoline.rb
pione-0.2.1 lib/pione/relay/trampoline.rb
pione-0.2.0 lib/pione/relay/trampoline.rb
pione-0.1.4 lib/pione/relay/trampoline.rb
pione-0.1.3 lib/pione/relay/trampoline.rb
pione-0.1.2 lib/pione/relay/trampoline.rb
pione-0.1.1 lib/pione/relay/trampoline.rb
pione-0.1.0 lib/pione/relay/trampoline.rb