class Bio::MAF::CompletionTracker
Attributes
delayed[R]
offsets[R]
queue[R]
Public Class Methods
new(fetch_list)
click to toggle source
# File lib/bio/maf/parser.rb, line 1018 def initialize(fetch_list) @offsets = fetch_list.collect { |e| e[0] } @queue = java.util.concurrent.LinkedBlockingQueue.new(128) @delayed = {} @sem = Mutex.new end
Public Instance Methods
<<(blocks)
click to toggle source
# File lib/bio/maf/parser.rb, line 1029 def <<(blocks) @sem.synchronize do f_offset = blocks.first.offset if f_offset == next_expected offsets.shift queue.put(blocks) drain_delayed else # out of order delayed[f_offset] = blocks end end end
drain_delayed()
click to toggle source
# File lib/bio/maf/parser.rb, line 1043 def drain_delayed while e = delayed.delete(next_expected) offsets.shift queue.put(e) end end
next_expected()
click to toggle source
# File lib/bio/maf/parser.rb, line 1025 def next_expected offsets.first end