Sha256: 3618cc30532c2aa75e1af022c12e13761e7f7aa02ce89c88fbe62b87208a7731

Contents?: true

Size: 689 Bytes

Versions: 3

Compression:

Stored size: 689 Bytes

Contents

module Fastdfs
  module Client

    class ClientProxy
      attr_accessor :data, :header, :content, :socket

      def initialize(cmd, socket, content_len, header = [])
        @cmd = cmd
        socket.connection
        @socket = socket
        @header = ProtoCommon.header_bytes(cmd, content_len) + header
        @content = []
      end

      def push_content
        raise "argument not block!" unless block_given?
        @content << yield
      end

      def dispose(&block)
        @socket.write(@cmd, @header)
        @content.each do |c|
          @socket.write(@cmd, c)
        end
        @socket.receive &block
      ensure
        @socket.close
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
fastdfs-client-1.0.2 lib/fastdfs-client/client_proxy.rb
fastdfs-client-1.0.1 lib/fastdfs-client/client_proxy.rb
fastdfs-client-1.0.0 lib/fastdfs-client/client_proxy.rb