Class: Transfer
- Defined in:
- lib/gems/xmpp4r-0.4/data/doc/xmpp4r/examples/advanced/fileserve.rb
Instance Attribute Summary collapse
-
#bytes ⇒ Object
readonly
Returns the value of attribute bytes.
-
#filename ⇒ Object
readonly
Returns the value of attribute filename.
-
#filesize ⇒ Object
readonly
Returns the value of attribute filesize.
-
#peer ⇒ Object
readonly
Returns the value of attribute peer.
Instance Method Summary collapse
- #done? ⇒ Boolean
-
#initialize(filetransfer, peer, filename, filesize, msgblock) ⇒ Transfer
constructor
A new instance of Transfer.
- #say(text) ⇒ Object
- #stats ⇒ Object
- #stats_loop ⇒ Object
- #transfer(from, to) ⇒ Object
Constructor Details
#initialize(filetransfer, peer, filename, filesize, msgblock) ⇒ Transfer
Returns a new instance of Transfer.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/gems/xmpp4r-0.4/data/doc/xmpp4r/examples/advanced/fileserve.rb', line 24 def initialize(filetransfer, peer, filename, filesize, msgblock) @filetransfer = filetransfer @peer = peer @filename = filename @filesize = filesize @msgblock = msgblock @done = false @bytes = 0 @stats = [0] @stats_lock = Mutex.new @stats_thread = Thread.new { stats_loop } @streamhost_cb = lambda { |streamhost,state,e| case state when :connecting say "Connecting to #{streamhost.jid} (#{streamhost.host}:#{streamhost.port})" when :success say "Successfully using #{streamhost.jid} (#{streamhost.host}:#{streamhost.port})" when :failure say "Error using #{streamhost.jid} (#{streamhost.host}:#{streamhost.port}): #{e}" end } end |
Instance Attribute Details
#bytes ⇒ Object (readonly)
Returns the value of attribute bytes.
22 23 24 |
# File 'lib/gems/xmpp4r-0.4/data/doc/xmpp4r/examples/advanced/fileserve.rb', line 22 def bytes @bytes end |
#filename ⇒ Object (readonly)
Returns the value of attribute filename.
22 23 24 |
# File 'lib/gems/xmpp4r-0.4/data/doc/xmpp4r/examples/advanced/fileserve.rb', line 22 def filename @filename end |
#filesize ⇒ Object (readonly)
Returns the value of attribute filesize.
22 23 24 |
# File 'lib/gems/xmpp4r-0.4/data/doc/xmpp4r/examples/advanced/fileserve.rb', line 22 def filesize @filesize end |
#peer ⇒ Object (readonly)
Returns the value of attribute peer.
22 23 24 |
# File 'lib/gems/xmpp4r-0.4/data/doc/xmpp4r/examples/advanced/fileserve.rb', line 22 def peer @peer end |
Instance Method Details
#done? ⇒ Boolean
50 51 52 53 |
# File 'lib/gems/xmpp4r-0.4/data/doc/xmpp4r/examples/advanced/fileserve.rb', line 50 def done? @stats_thread.kill if @done @done end |
#say(text) ⇒ Object
75 76 77 |
# File 'lib/gems/xmpp4r-0.4/data/doc/xmpp4r/examples/advanced/fileserve.rb', line 75 def say(text) @msgblock.call(text) end |
#stats ⇒ Object
65 66 67 68 69 70 71 72 73 |
# File 'lib/gems/xmpp4r-0.4/data/doc/xmpp4r/examples/advanced/fileserve.rb', line 65 def stats @stats_lock.synchronize { if @stats.first >= @stats.last 0 else (@stats.last - @stats.first) / (@stats.size - 1) end } end |
#stats_loop ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/gems/xmpp4r-0.4/data/doc/xmpp4r/examples/advanced/fileserve.rb', line 55 def stats_loop loop { sleep 1 @stats_lock.synchronize { @stats.push @bytes @stats.shift if @stats.size > 5 } } end |
#transfer(from, to) ⇒ Object
79 80 81 82 83 |
# File 'lib/gems/xmpp4r-0.4/data/doc/xmpp4r/examples/advanced/fileserve.rb', line 79 def transfer(from, to) while buf = from.read @bytes += to.write buf end end |