OpenTTCN/Knowledge base/Creating Adapters with Adapter Framework/SeparatorChunkingMode.cs
From OpenTTCN
Home | Developer's corner | Knowledge base | Working documents | Documentation | OpenTTCN IDE | Tutorials | Training | How do I | Frequently asked questions | Technical support |
SeparatorChunkingMode.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OpenTTCN.Sdk.ChunkingModes
{
public class SeparatorChunkingMode : BufferingChunkingMode
{
private byte[] _separator;
public SeparatorChunkingMode(byte[] separator)
: base()
{
_separator = new byte[separator.Length];
Array.Copy(separator, _separator, _separator.Length);
}
protected override long findMessageEnd(byte[] buffer, long offset, long length)
{
long index = -1;
for (long i = offset;
i < length - (_separator.Length - 1); i++)
{
bool matches = true;
for (int j = 0; j < _separator.Length; j++)
{
if (buffer[i + j] != _separator[j])
{
matches = false;
break;
}
}
if (matches)
{
index = i + _separator.Length;
break;
}
}
return index;
}
public override ChunkingMode copy()
{
return new SeparatorChunkingMode(_separator);
}
}
}
