Async::WebDriverSourceAsyncWebDriverBridgePoolBridgeController

class BridgeController

Controls pooled drivers and cached sessions.

Nested

Definitions

def initialize(bridge, capabilities: bridge.default_capabilities)

Initialize the bridge controller.

Signature

parameter bridge Bridge

The bridge used to create drivers.

parameter capabilities Hash

Capabilities used for new sessions.

Implementation

def initialize(bridge, capabilities: bridge.default_capabilities)
	@bridge = bridge
	@capabilities = capabilities
	@pool = Async::Pool::Controller.new(self)
end

def call

Constructor for the pool.

Implementation

def call
	SessionCache.new(@bridge.start, @capabilities)
end

def acquire

Acquire a session payload from the pool.

Signature

returns Hash

The acquired session payload.

Implementation

def acquire
	session_cache = @pool.acquire
	
	return session_cache.acquire
end

def release(session)

Return a session payload to the pool.

Signature

parameter session Hash

The session payload to release.

Implementation

def release(session)
	session_cache = session[:cache]
	
	session_cache.release(session)
	
	@pool.release(session_cache)
end

def retire(session)

Retire a session payload and its cache from the pool.

Signature

parameter session Hash

The session payload to retire.

Implementation

def retire(session)
	session_cache = session[:cache]
	
	session_cache.release(session)
	
	@pool.retire(session_cache)
end

def close

Close the underlying driver pool.

Implementation

def close
	if @pool
		@pool.close
		@pool = nil
	end
end