process:
try
{
byte[] sidbytes = new byte[ 2 ];
int bytesread = in.read(sidbytes);
Record rec = null;
while (bytesread > 0)
{
short sid = 0;
sid = LittleEndian.getShort(sidbytes);
if ((rec != null) && (sid != ContinueRecord.sid))
{
userCode = req.processRecord(rec);
if (userCode != 0) break process;
}
if (sid != ContinueRecord.sid)
{
short size = LittleEndian.readShort(in);
byte[] data = new byte[ size ];
if (data.length > 0)
{
in.read(data);
}
Record[] recs = RecordFactory.createRecord(sid, size,
data);
if (recs.length > 1)
{ // we know that the multiple
for (int k = 0; k < (recs.length - 1); k++)
{ // record situations do not
userCode = req.processRecord(
recs[ k ]); // contain continue records
if (userCode != 0) break process;
}
}
rec = recs[ recs.length - 1 ]; // regardless we'll process
// the last record as though
// it might be continued
// if there is only one
// records, it will go here too.
}
else
{ // we do have a continue record
short size = LittleEndian.readShort(in);
byte[] data = new byte[ size ];
if (data.length > 0)
{
in.read(data);
}
rec.processContinueRecord(data);
}
bytesread = in.read(sidbytes); // read next record sid
}
if (rec != null)
{