# File lib/JapaneseContextAnalysis.rb, line 137 def feed(aBuf, aLen) if @_mDone then return end # The buffer we got is byte oriented, and a character may span in more than one # buffers. In case the last one or two byte in last buffer is not complete, we # record how many byte needed to complete that character and skip these bytes here. # We can choose to record those bytes as well and analyse the character once it # is complete, but since a character will not make much difference, by simply skipping # this character will simply our logic and improve performance. i = @_mNeedToSkipCharNum while i < aLen order, charLen = get_order(aBuf[i..i+2]) i += charLen if i > aLen @_mNeedToSkipCharNum = i - aLen @_mLastCharOrder = -1 else if (order != -1) and (@_mLastCharOrder != -1) @_mTotalRel += 1 if @_mTotalRel > MAX_REL_THRESHOLD @_mDone = true break end @_mRelSample[Jp2CharContext[@_mLastCharOrder][order]] += 1 end @_mLastCharOrder = order end end end