== Record Parser

The record parser allows you to easily parse protocols which are delimited by a sequence of bytes, or fixed
size records.

It transforms a sequence of input buffer to a sequence of buffer structured as configured (either
fixed size or separated records).

For example, if you have a simple ASCII text protocol delimited by '\n' and the input is the following:

[source]
----
buffer1:HELLO\nHOW ARE Y
buffer2:OU?\nI AM
buffer3: DOING OK
buffer4:\n
----

The record parser would produce
[source]
----
buffer1:HELLO
buffer2:HOW ARE YOU?
buffer3:I AM DOING OK
----

Let's see the associated code:

[source, ruby]
----
require 'vertx/record_parser'
require 'vertx/buffer'
parser = Vertx::RecordParser.new_delimited("\n") { |h|
  puts h.to_string()
}

parser.handle(Vertx::Buffer.buffer("HELLO\nHOW ARE Y"))
parser.handle(Vertx::Buffer.buffer("OU?\nI AM"))
parser.handle(Vertx::Buffer.buffer("DOING OK"))
parser.handle(Vertx::Buffer.buffer("\n"))

----

You can also produce fixed sized chunks as follows:

[source, ruby]
----
require 'vertx/record_parser'
Vertx::RecordParser.new_fixed(4) { |h|
  puts h.to_string()
}

----

For more details, check out the `link:../../yardoc/Vertx/RecordParser.html[RecordParser]` class.