Sha256: fb18e52a47342040a718005c024a53189b9aa7124ec4b5a85338ca1357f9431e

Contents?: true

Size: 905 Bytes

Versions: 1

Compression:

Stored size: 905 Bytes

Contents

module ExperimentalMemcached
  def get_len(user_spec_len, keys)
    if keys.is_a? ::Array
      # Multi get
      ret = ::Memcached::Lib.memcached_mget_len(@struct, keys, user_spec_len);
      check_return_code(ret, keys)

      hash = {}
      keys.each do
        value, key, flags, ret = ::Memcached::Lib.memcached_fetch_rvalue(@struct)
        break if ret == ::Memcached::Lib::MEMCACHED_END
        if ret != ::Memcached::Lib::MEMCACHED_NOTFOUND
          check_return_code(ret, key)
          # Assign the value
          hash[key] = value
        end
      end
      hash
    else
      # Single get_len
      value, flags, ret = ::Memcached::Lib.memcached_get_len_rvalue(@struct, keys, user_spec_len)
      check_return_code(ret, keys)
      value
    end
  rescue => e
    tries ||= 0
    raise unless tries < options[:exception_retry_limit] && should_retry(e)
    tries += 1
    retry
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
memcached-0.20.0 lib/memcached/experimental_memcached.rb