Sha256: 6ed4832a7241b8943579a571320dccaac92023ac6c466988f2dbb1205448b4e8

Contents?: true

Size: 1.01 KB

Versions: 12

Compression:

Stored size: 1.01 KB

Contents

require 'rubygems'
require 'test/unit'

require File.dirname(__FILE__) + "/../lib/mailbox"

class ICanHasCheeseBurger
  include Mailbox

  def initialize(channel)
    register_channel :request_channel, channel
  end

  mailslot :channel => :request_channel, :replyable => true
  def can_you_has?
    return "ya you can has!"
  end

end

class ICanHasCheeseBurgerExample < Test::Unit::TestCase

  def test_cheeseburgerz
    i_can_has_channel = org.jetlang.channels.MemoryRequestChannel.new
    i_can_has_cheeseburger = ICanHasCheeseBurger.new(i_can_has_channel)

    sync_executor = org.jetlang.core.SynchronousDisposingExecutor.new
    sync_fiber = org.jetlang.fibers.ThreadFiber.new(sync_executor, nil, false)
    question = "can i has?"
    puts question

    latch = JRL::Concurrent::Latch.new(1)
    answer = "no response!"
    org.jetlang.channels.AsyncRequest.with_one_reply(sync_fiber, i_can_has_channel, question) do |message|
      answer = message
      latch.count_down
    end

    latch.await(1)
    puts answer
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
mailbox-0.2.7 example/i_can_has_cheese_burger_example.rb
mailbox-0.2.6 example/i_can_has_cheese_burger_example.rb
mailbox-0.2.5 example/i_can_has_cheese_burger_example.rb
mailbox-0.2.4 example/i_can_has_cheese_burger_example.rb
mailbox-0.2.3 example/i_can_has_cheese_burger_example.rb
mailbox-0.2.2 example/i_can_has_cheese_burger_example.rb
mailbox-0.2.1 example/i_can_has_cheese_burger_example.rb
mailbox-0.2.0 example/i_can_has_cheese_burger_example.rb
mailbox-0.1.7 example/i_can_has_cheese_burger_example.rb
mailbox-0.1.6 example/i_can_has_cheese_burger_example.rb
mailbox-0.1.4 example/i_can_has_cheese_burger_example.rb
mailbox-0.1.3 example/i_can_has_cheese_burger_example.rb