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.



803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
# File 'lib/httpclient.rb', line 803

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

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

Instance Attribute Details

#agent_nameObject

:nodoc:



786
787
788
# File 'lib/httpclient.rb', line 786

def agent_name
  @agent_name
end

#chunk_sizeObject

Chunk size for chunked request



790
791
792
# File 'lib/httpclient.rb', line 790

def chunk_size
  @chunk_size
end

#connect_retryObject

Maximum retry count. 0 for infinite.



796
797
798
# File 'lib/httpclient.rb', line 796

def connect_retry
  @connect_retry
end

#connect_timeoutObject

These parameters are not used now…



795
796
797
# File 'lib/httpclient.rb', line 795

def connect_timeout
  @connect_timeout
end

#debug_devObject

Device for dumping log for debugging



791
792
793
# File 'lib/httpclient.rb', line 791

def debug_dev
  @debug_dev
end

#fromObject

Owner of this client.



787
788
789
# File 'lib/httpclient.rb', line 787

def from
  @from
end

#protocol_versionObject

Requested protocol version



789
790
791
# File 'lib/httpclient.rb', line 789

def protocol_version
  @protocol_version
end

#read_block_sizeObject

Returns the value of attribute read_block_size.



799
800
801
# File 'lib/httpclient.rb', line 799

def read_block_size
  @read_block_size
end

#receive_timeoutObject

Returns the value of attribute receive_timeout.



798
799
800
# File 'lib/httpclient.rb', line 798

def receive_timeout
  @receive_timeout
end

#send_timeoutObject

Returns the value of attribute send_timeout.



797
798
799
# File 'lib/httpclient.rb', line 797

def send_timeout
  @send_timeout
end

#socket_syncObject

Boolean value for Socket#sync



792
793
794
# File 'lib/httpclient.rb', line 792

def socket_sync
  @socket_sync
end

#ssl_configObject

Returns the value of attribute ssl_config.



801
802
803
# File 'lib/httpclient.rb', line 801

def ssl_config
  @ssl_config
end

Instance Method Details

#keep(sess) ⇒ Object



861
862
863
# File 'lib/httpclient.rb', line 861

def keep(sess)
  add_cached_session(sess)
end

#proxy=(proxy) ⇒ Object



826
827
828
829
830
831
832
# File 'lib/httpclient.rb', line 826

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

#query(req, proxy) ⇒ Object



834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
# File 'lib/httpclient.rb', line 834

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



852
853
854
855
# File 'lib/httpclient.rb', line 852

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

#reset_allObject



857
858
859
# File 'lib/httpclient.rb', line 857

def reset_all
  close_all
end