Sha256: db978b382d017189107a935e513635fe8c89298a714a1abb5322fbc9ccbade6d
Contents?: true
Size: 1.24 KB
Versions: 6479
Compression:
Stored size: 1.24 KB
Contents
# frozen_string_literal: true module Ethon class Multi # This module provides the multi stack behaviour. module Stack # Return easy handles. # # @example Return easy handles. # multi.easy_handles # # @return [ Array ] The easy handles. def easy_handles @easy_handles ||= [] end # Add an easy to the stack. # # @example Add easy. # multi.add(easy) # # @param [ Easy ] easy The easy to add. # # @raise [ Ethon::Errors::MultiAdd ] If adding an easy failed. def add(easy) return nil if easy_handles.include?(easy) code = Curl.multi_add_handle(handle, easy.handle) raise Errors::MultiAdd.new(code, easy) unless code == :ok easy_handles << easy end # Delete an easy from stack. # # @example Delete easy from stack. # # @param [ Easy ] easy The easy to delete. # # @raise [ Ethon::Errors::MultiRemove ] If removing an easy failed. def delete(easy) if easy_handles.delete(easy) code = Curl.multi_remove_handle(handle, easy.handle) raise Errors::MultiRemove.new(code, handle) unless code == :ok end end end end end
Version data entries
6,479 entries across 6,477 versions & 22 rubygems