Class TTK::Fetchers::Server::Sender
In: lib/ttk/fetchers/server/sender.rb
Parent: Object

Methods

new   send   stat  

Included Modules

DRb::DRbUndumped

Constants

BLOCK_SIZE = 1024

Public Class methods

[Source]

# File lib/ttk/fetchers/server/sender.rb, line 22
        def initialize(resource, receiver)
          @resource = resource
          unless @resource.exist?
            raise(Errno::ENOENT, "`#@resource' - no such resource")
          end
          @receiver = receiver
          @md5sum = Digest::MD5.new
          @success = nil
        end

Public Instance methods

[Source]

# File lib/ttk/fetchers/server/sender.rb, line 32
        def send
          if @success.nil?
            @t0 = Time.now
            @resource.open do |f|
              until f.eof?
                str = f.read(BLOCK_SIZE)
                @md5sum << str
                @receiver.recv(str)
              end
              @success = @receiver.stop(@md5sum.to_s)
            end
            @enlapsed_time = DTime.new(Time.now - @t0)
            @success
          end
        end

[Source]

# File lib/ttk/fetchers/server/sender.rb, line 48
        def stat
          unless @success.nil?
            {
              :resource => @resource,
              :enlapsed_time => @enlapsed_time,
              :md5sum => @md5sum.to_s,
              :success => @success
            }
          end
        end

[Validate]