class Net::TTI::ProtocolNegotiationResponse

Public Instance Methods

populate_connection_parameters( conn_params ) click to toggle source
# File lib/net/tti/messages/protocol_negotiation_response.rb, line 24
def populate_connection_parameters( conn_params )
  conn_params.ttc_version = self.ttc_version
  conn_params.ttc_server = self.ttc_server
  conn_params.character_set = self.character_set
  conn_params.server_flags = self.server_flags
  conn_params.server_compiletime_capabilities = Capabilities.from_binary_string( server_compiletime_capabilities )
  conn_params.server_runtime_capabilities = Capabilities.from_binary_string( server_runtime_capabilities )

  ttc_server_map = {
    # (start of) protocol handler string => {params}
    "IBMPC/WIN_NT-" => {:architecture => :x86, :platform => :windows},
    "IBMPC/WIN_NT64" => {:architecture => :x64, :platform => :windows},
    "Linuxi386/Linux" => {:architecture => :x86, :platform => :linux},
    "x86_64/Linux" => {:architecture => :x64, :platform => :linux},
    "Sun386i/SunOS" => {:architecture => :x86, :platform => :solaris},
    "AMD64/SunOS" => {:architecture => :x64, :platform => :solaris},
  }

  ph_match, match_params = ttc_server_map.find do |ph_start, params|
    ttc_server.start_with?(ph_start)
  end

  if ph_match
    conn_params.architecture = match_params[:architecture]
    conn_params.platform = match_params[:platform]
  else
    raise Net::TTI::Exceptions::UnsupportedPlatform.new( ttc_server )
  end
end