Sha256: 7904101c02d334454b5db087c73063e3f4ff59a2699ee1f3b6a7b2ab7969d9cd

Contents?: true

Size: 1.93 KB

Versions: 16

Compression:

Stored size: 1.93 KB

Contents

require 'timeout'
require 'protobuf/logger'
require 'protobuf/rpc/rpc.pb'
require 'protobuf/rpc/buffer'
require 'protobuf/rpc/error'
require 'protobuf/rpc/stat'
require 'protobuf/rpc/connectors/common'

module Protobuf
  module Rpc
    module Connectors
      DEFAULT_OPTIONS = {
        :service                 => nil,         # Fully-qualified Service class
        :method                  => nil,         # Service method to invoke
        :host                    => '127.0.0.1', # The hostname or address of the service (usually overridden)
        :port                    => '9399',      # The port of the service (usually overridden or pre-configured)
        :request                 => nil,         # The request object sent by the client
        :request_type            => nil,         # The request type expected by the client
        :response_type           => nil,         # The response type expected by the client
        :timeout                 => 300,         # The default timeout for the request, also handled by client.rb
        :client_host             => nil,         # The hostname or address of this client
        :first_alive_load_balance => false,       # Do we want to use check_avail frames before request
      }

      class Base
        include Protobuf::Logger::LogMethods

        attr_reader :options
        attr_accessor :success_cb, :failure_cb, :complete_cb

        def initialize(options)
          @options = DEFAULT_OPTIONS.merge(options)
        end

        def first_alive_load_balance?
          ENV.has_key?("PB_FIRST_ALIVE_LOAD_BALANCE") ||
            options[:first_alive_load_balance]
        end

        def send_request
          raise 'If you inherit a Connector from Base you must implement send_request'
        end

        def ping_port
          @ping_port ||= ENV["PB_RPC_PING_PORT"]
        end

        def ping_port_enabled?
          ENV.has_key?("PB_RPC_PING_PORT")
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
protobuffy-3.6.0 lib/protobuf/rpc/connectors/base.rb
protobuffy-3.5.1 lib/protobuf/rpc/connectors/base.rb
protobuffy-3.4.0 lib/protobuf/rpc/connectors/base.rb
protobuffy-3.3.0 lib/protobuf/rpc/connectors/base.rb
protobuffy-3.2.0 lib/protobuf/rpc/connectors/base.rb
protobuffy-3.1.0 lib/protobuf/rpc/connectors/base.rb
protobuf-3.2.1 lib/protobuf/rpc/connectors/base.rb
protobuf-3.2.0 lib/protobuf/rpc/connectors/base.rb
protobuf-3.1.0 lib/protobuf/rpc/connectors/base.rb
protobuf-3.0.5 lib/protobuf/rpc/connectors/base.rb
protobuf-3.0.4 lib/protobuf/rpc/connectors/base.rb
protobuf-3.0.3 lib/protobuf/rpc/connectors/base.rb
protobuf-3.0.2 lib/protobuf/rpc/connectors/base.rb
protobuf-3.0.1 lib/protobuf/rpc/connectors/base.rb
protobuf-3.0.0 lib/protobuf/rpc/connectors/base.rb
protobuf-3.0.0.rc2 lib/protobuf/rpc/connectors/base.rb