nsmcp::FileLogSource method consume (protected)
<instance of nsmcp::FileLogSource> consume state bytes
Defined in /usr/local/ns/tcl/nsmcp/lib/log-source.tcl
Read channels are binary, so offsets and cursor are byte offsets even with multibyte UTF-8. Unfinished physical lines survive between reads.
- Parameters:
- state (required)
- bytes (required)
- Testcases:
- No testcase defined.
Source code: set parts [split $bytes \n] set last [expr {[llength $parts]-1}] set position [dict get $state cursor] set fragment [dict get $state fragment] set start [dict get $state fragmentOffset] set clipped [dict get $state fragmentTruncated] for {set i 0} {$i <= $last} {incr i} { set part [lindex $parts $i] set room [expr {${:maxMessageBytes} - [string length $fragment]}] if {[string length $part] > $room} {set clipped true} append fragment [string range $part 0 [expr {$room-1}]] incr position [string length $part] if {$i < $last} { incr position set line [encoding convertfrom utf-8 [string trimright $fragment \r]] set state [:joinLine $state $line $start $position $clipped] set fragment {}; set clipped false; set start $position } } dict set state cursor $position dict set state fragment $fragment dict set state fragmentOffset $start dict set state fragmentTruncated $clipped return $stateXQL Not present: Generic, PostgreSQL, Oracle
![[i]](/resources/acs-subsite/ZoomIn16.gif)