Sha256: 5c97b4622631a891dfff0e4ad29e4e132a17216cbdae9f8431b924fa20f2cdb4

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

module Pione
  module Command
    class PioneRelay < FrontOwnerCommand
      set_program_name("pione-relay") do
        "--relay-port %s" % [@relay_port]
      end

      set_program_message <<TXT
Runs relay process for connecting between clients and brokers.
TXT

      define_option("--realm name", "set relay realm name for client authentification") do |name|
        Global.relay_realm = name
      end

      define_option("--relay-port port", "set relay port") do |port|
        @relay_port = port
      end

      def initialize
        @relay_port = Global.relay_port
      end

      def validate_options
        abort("error: no realm name") if Global.relay_realm.nil? or Global.relay_realm.empty?
        abort("error: no relay port") unless @relay_port
      end

      def create_front
        Front::RelayFront.new(self)
      end

      def start
        # wake up tuple space provider process
        Pione::TupleSpaceProvider.instance

        puts DRb.front.uri
        DRb::DRbServer.new(
          "relay://:%s" % @relay_port,
          nil,
          {:SSLCertName => Global.relay_ssl_certname}
        )
        DRb.thread.join
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pione-0.1.2 lib/pione/command/pione-relay.rb
pione-0.1.1 lib/pione/command/pione-relay.rb
pione-0.1.0 lib/pione/command/pione-relay.rb