MBS upgrade for DABC
To have minimal changes, we use standard
Two different changes must be done:
1. Increased buffer size support
This has been done in a completely compatible way. The only problem was the 16 bit
field in the buffer header keeping the number of 16 bit data words (behind buffer header). With a new rule we store this number in 32 bit field
is less equal
this number is also stored in
as before. Modifications have to be made in all MBS modules accessing
Modules outside MBS can be modified on demand to support large buffers. Current buffers still can be handled without change.
When MBS writes large buffer files only the used part of the file header is written. Number of 16 bit words behind
buffer header structure is written in
is updated to handle large buffers on input.
: By setup the number of buffers per stream can be set to one. This suppresses event spanning.
Large buffers can be used by standard MBS.
, remote event server.
2. Variable sized buffers
As a second step variable sized buffers are implemented. They get a new type 100. The allocated buffers are still fixed length as before. However, the transport would write only the used part of the buffers to clients. Processing these buffers
a module must first read the header, then get the used size from
) and read the rest.
Modules outside MBS must be modified to process such buffers.
In MBS, after stream buffers are created, buffer types
are set to 100 by a new command
This command sets the
synchronous mode. In this mode
processes streams only if a client is connected.
if needed) had to be changed
to send only the used buffer parts. All other modules just have to process type 100 as type 10.
how to avoid data loss when client disconnects/connects? Works!
Not supported in this mode:
Stream segment is created by
and formatted by
Buffer headers are formatted in
Stream segments are created by either
(and its variants) or
- 25 Oct 2007