A helper class which allows you to easily parse protocols which are
delimited by a sequence of bytes, or fixed size records.
Instances of this class take as input Buffer
instances containing raw bytes, and output records. For example, if I had a
simple ASCII text protocol delimited by '\n' and the input was the
following:
buffer1:HELLO\nHOW ARE Y buffer2:OU?\nI AM buffer3: DOING OK buffer4:\n
Then the output would be:
buffer1:HELLO buffer2:HOW ARE YOU? buffer3:I AM DOING OK
Instances of this class can be changed between delimited mode and fixed size record mode on the fly as individual records are read, this allows you to parse protocols where, for example, the first 5 records might all be fixed size (of potentially different sizes), followed by some delimited records, followed by more fixed size records.
Instances of this class can't currently be used for protocols where the text is encoded with something other than a 1-1 byte-char mapping.
Classes
Methods
-
<static> createDelimitedParser(delim, output) → {module:vertx/parse_tools.RecordParser}
-
Create a new
RecordParser
instance, initially in delimited mode, and where the delimiter can be represented bydelim
.output
will receive whole records which have been parsed.Parameters:
Name Type Description delim
string The record delimiter output
Function The function to call once more data is ready - Source:
Returns:
A delimited record parser -
<static> createFixedParser(size, The) → {module:vertx/parse_tools.RecordParser}
-
Create a new
RecordParser
instance, initially in fixed size mode, and where the record size is specified by thesize
parameter.output
will receive whole records which have been parsed.Parameters:
Name Type Description size
number The record size The
Function function to call once more data is ready - Source:
Returns:
A fixed size record parser