Class: HTTPClient::SessionManager

Inherits:
Object
  • Object
show all
Defined in:
lib/httpclient.rb

Overview

HTTPClient::SessionManager – manage several sessions.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSessionManager

Returns a new instance of SessionManager.



890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
# File 'lib/httpclient.rb', line 890

def initialize
  @proxy = nil

  @agent_name = nil
  @from = nil

  @protocol_version = nil
  @debug_dev = nil
  @socket_sync = true
  @chunk_size = 4096

  @connect_timeout = 60
  @connect_retry = 1
  @send_timeout = 120
  @receive_timeout = 60       # For each read_block_size bytes
  @read_block_size = 8192

  @ssl_config = nil
  @test_loopback_http_response = []

  @sess_pool = []
  @sess_pool_mutex = Mutex.new
end

Instance Attribute Details

#agent_nameObject

:nodoc:



871
872
873
# File 'lib/httpclient.rb', line 871

def agent_name
  @agent_name
end

#chunk_sizeObject

Chunk size for chunked request



875
876
877
# File 'lib/httpclient.rb', line 875

def chunk_size
  @chunk_size
end

#connect_retryObject

Maximum retry count. 0 for infinite.



881
882
883
# File 'lib/httpclient.rb', line 881

def connect_retry
  @connect_retry
end

#connect_timeoutObject

These parameters are not used now…



880
881
882
# File 'lib/httpclient.rb', line 880

def connect_timeout
  @connect_timeout
end

#debug_devObject

Device for dumping log for debugging



876
877
878
# File 'lib/httpclient.rb', line 876

def debug_dev
  @debug_dev
end

#fromObject

Owner of this client.



872
873
874
# File 'lib/httpclient.rb', line 872

def from
  @from
end

#protocol_versionObject

Requested protocol version



874
875
876
# File 'lib/httpclient.rb', line 874

def protocol_version
  @protocol_version
end

#read_block_sizeObject

Returns the value of attribute read_block_size.



884
885
886
# File 'lib/httpclient.rb', line 884

def read_block_size
  @read_block_size
end

#receive_timeoutObject

Returns the value of attribute receive_timeout.



883
884
885
# File 'lib/httpclient.rb', line 883

def receive_timeout
  @receive_timeout
end

#send_timeoutObject

Returns the value of attribute send_timeout.



882
883
884
# File 'lib/httpclient.rb', line 882

def send_timeout
  @send_timeout
end

#socket_syncObject

Boolean value for Socket#sync



877
878
879
# File 'lib/httpclient.rb', line 877

def socket_sync
  @socket_sync
end

#ssl_configObject

Returns the value of attribute ssl_config.



886
887
888
# File 'lib/httpclient.rb', line 886

def ssl_config
  @ssl_config
end

#test_loopback_http_responseObject (readonly)

Returns the value of attribute test_loopback_http_response.



888
889
890
# File 'lib/httpclient.rb', line 888

def test_loopback_http_response
  @test_loopback_http_response
end

Instance Method Details

#keep(sess) ⇒ Object



949
950
951
# File 'lib/httpclient.rb', line 949

def keep(sess)
  add_cached_session(sess)
end

#proxy=(proxy) ⇒ Object



914
915
916
917
918
919
920
# File 'lib/httpclient.rb', line 914

def proxy=(proxy)
  if proxy.nil?
    @proxy = nil
  else
    @proxy = Site.new(proxy)
  end
end

#query(req, proxy) ⇒ Object



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
# File 'lib/httpclient.rb', line 922

def query(req, proxy)
  req.body.chunk_size = @chunk_size
  dest_site = Site.new(req.header.request_uri)
  proxy_site = if proxy
      Site.new(proxy)
    else
      @proxy
    end
  sess = open(dest_site, proxy_site)
  begin
    sess.query(req)
  rescue
    sess.close
    raise
  end
  sess
end

#reset(uri) ⇒ Object



940
941
942
943
# File 'lib/httpclient.rb', line 940

def reset(uri)
  site = Site.new(uri)
  close(site)
end

#reset_allObject



945
946
947
# File 'lib/httpclient.rb', line 945

def reset_all
  close_all
end