ln.objects/catalog/ODBByteBuffer.cs

53 lines
1.3 KiB
C#

// /**
// * File: ODBByteBuffer.cs
// * Author: haraldwolff
// *
// * This file and it's content is copyrighted by the Author and / or copyright holder.
// * Any use wihtout proper permission is illegal and may lead to legal actions.
// *
// *
// **/
using ln.type;
using System;
namespace ln.objects.catalog
{
public class ODBByteBuffer : ODBValue
{
public byte[] GetBytes() => (byte[])Value;
public ODBByteBuffer(byte[] bytes)
: base(0x0800, bytes.Slice(0))
{
}
public override byte[] Serialize() => GetBytes();
protected override int compare(ODBEntity other)
{
ODBByteBuffer you = other as ODBByteBuffer;
byte[] myBytes = GetBytes();
byte[] yourBytes = you.GetBytes();
int dl = myBytes.Length - yourBytes.Length;
if (dl != 0)
return dl;
while (dl < myBytes.Length)
{
int d = myBytes[dl] - yourBytes[dl++];
if (d != 0)
return d;
}
return 0;
}
static ODBByteBuffer()
{
RegisterDeserializer(0x0800, (storageBytes, offset, length) => new ODBByteBuffer(storageBytes.Slice(offset, length)));
}
}
}