class CTI::Builder::Fragment
Public Class Methods
new(id)
click to toggle source
# File CTI/Builder/StreamBuilder.rb 9 def initialize(id) 10 @id = id 11 @prev = nil 12 @nxt = nil 13 @length = 0 14 @buffer = '' 15 end
Public Instance Methods
flush(tempFile, out)
click to toggle source
フラグメントの内容を吐き出して、フラグメントを破棄します。
- tempFile
-
一時ファイル
- out
-
出力先ストリーム( IO )
end¶ ↑
# File CTI/Builder/StreamBuilder.rb 74 def flush(tempFile, out) 75 unless @segments 76 out.write(@buffer) 77 @buffer = nil 78 else 79 segcount = @segments.size 80 for seg in @segments 81 tempFile.pos = seg * CTIP2::SEGMENT_SIZE 82 buff = tempFile.read(seg == @segments.last ? @segLen : CTIP2::SEGMENT_SIZE) 83 out.write(buff) 84 end 85 end 86 end
id()
click to toggle source
# File CTI/Builder/StreamBuilder.rb 17 def id 18 @id 19 end
nxt()
click to toggle source
# File CTI/Builder/StreamBuilder.rb 33 def nxt 34 @nxt 35 end
nxt=(nxt)
click to toggle source
# File CTI/Builder/StreamBuilder.rb 29 def nxt=(nxt) 30 @nxt = nxt 31 end
prev()
click to toggle source
# File CTI/Builder/StreamBuilder.rb 25 def prev 26 @prev 27 end
prev=(prev)
click to toggle source
# File CTI/Builder/StreamBuilder.rb 21 def prev=(prev) 22 @prev = prev 23 end
write(tempFile, onMemory, segment, bytes)
click to toggle source
フラグメントにデータを書き込みます。
- tempFile
-
一時ファイル
- onMemory
-
メモリ上に置かれたデータの合計サイズ
- segment
-
セグメント番号シーケンス
- bytes
-
データ
- 戻り値
-
書き込んだバイト数
end¶ ↑
# File CTI/Builder/StreamBuilder.rb 48 def write(tempFile, onMemory, segment, bytes) 49 len = bytes.bytesize 50 if (!@segments && 51 @length + len <= CTIP2::FRG_MEM_SIZE && 52 onMemory + len <= CTIP2::ON_MEMORY) 53 @buffer += bytes 54 onMemory += len 55 else 56 if @buffer 57 segment, wlen = raf_write(tempFile, segment, @buffer) 58 onMemory -= wlen 59 @buffer = nil 60 end 61 segment, len = raf_write(tempFile, segment, bytes) 62 end 63 @length += len 64 return onMemory, segment, len 65 end