mirror of
https://github.com/esiur/esiur-dotnet.git
synced 2025-09-13 12:43:17 +00:00
codec
This commit is contained in:
@@ -14,108 +14,108 @@ public static class DataSerializer
|
||||
{
|
||||
public delegate byte[] Serializer(object value);
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) Int32Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) Int32Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var v = (int)value;
|
||||
var rt = new byte[4];
|
||||
fixed (byte* ptr = rt)
|
||||
*((int*)ptr) = v;
|
||||
return (TransmissionTypeIdentifier.Int32, rt);
|
||||
return (TransmissionDataUnitIdentifier.Int32, rt);
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) UInt32Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) UInt32Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var v = (uint)value;
|
||||
var rt = new byte[4];
|
||||
fixed (byte* ptr = rt)
|
||||
*((uint*)ptr) = v;
|
||||
return (TransmissionTypeIdentifier.UInt32, rt);
|
||||
return (TransmissionDataUnitIdentifier.UInt32, rt);
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) Int16Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) Int16Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var v = (short)value;
|
||||
var rt = new byte[2];
|
||||
fixed (byte* ptr = rt)
|
||||
*((short*)ptr) = v;
|
||||
return (TransmissionTypeIdentifier.Int16, rt);
|
||||
return (TransmissionDataUnitIdentifier.Int16, rt);
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) UInt16Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) UInt16Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var v = (ushort)value;
|
||||
var rt = new byte[2];
|
||||
fixed (byte* ptr = rt)
|
||||
*((ushort*)ptr) = v;
|
||||
return (TransmissionTypeIdentifier.UInt16, rt);
|
||||
return (TransmissionDataUnitIdentifier.UInt16, rt);
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) Float32Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) Float32Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var v = (float)value;
|
||||
var rt = new byte[4];
|
||||
fixed (byte* ptr = rt)
|
||||
*((float*)ptr) = v;
|
||||
return (TransmissionTypeIdentifier.Float32, rt);
|
||||
return (TransmissionDataUnitIdentifier.Float32, rt);
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) Float64Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) Float64Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var v = (double)value;
|
||||
var rt = new byte[8];
|
||||
fixed (byte* ptr = rt)
|
||||
*((double*)ptr) = v;
|
||||
return (TransmissionTypeIdentifier.Float64, rt);
|
||||
return (TransmissionDataUnitIdentifier.Float64, rt);
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) Int64Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) Int64Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var v = (long)value;
|
||||
var rt = new byte[8];
|
||||
fixed (byte* ptr = rt)
|
||||
*((long*)ptr) = v;
|
||||
return (TransmissionTypeIdentifier.Int64, rt);
|
||||
return (TransmissionDataUnitIdentifier.Int64, rt);
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) UIn64Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) UIn64Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var v = (ulong)value;
|
||||
var rt = new byte[8];
|
||||
fixed (byte* ptr = rt)
|
||||
*((ulong*)ptr) = v;
|
||||
return (TransmissionTypeIdentifier.UInt64, rt);
|
||||
return (TransmissionDataUnitIdentifier.UInt64, rt);
|
||||
}
|
||||
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) DateTimeComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) DateTimeComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var v = ((DateTime)value).ToUniversalTime().Ticks;
|
||||
var rt = new byte[8];
|
||||
fixed (byte* ptr = rt)
|
||||
*((long*)ptr) = v;
|
||||
return (TransmissionTypeIdentifier.DateTime, rt);
|
||||
return (TransmissionDataUnitIdentifier.DateTime, rt);
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) Float128Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) Float128Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var v = (decimal)value;
|
||||
var rt = new byte[16];
|
||||
fixed (byte* ptr = rt)
|
||||
*((decimal*)ptr) = v;
|
||||
return (TransmissionTypeIdentifier.Decimal128, rt);
|
||||
return (TransmissionDataUnitIdentifier.Decimal128, rt);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) StringComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) StringComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
return (TransmissionTypeIdentifier.String, Encoding.UTF8.GetBytes((string)value));
|
||||
return (TransmissionDataUnitIdentifier.String, Encoding.UTF8.GetBytes((string)value));
|
||||
}
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) EnumComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) EnumComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
if (value == null)
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
|
||||
//var warehouse = connection?.Instance?.Warehouse ?? connection?.Server?.Instance?.Warehouse;
|
||||
//if (warehouse == null)
|
||||
@@ -128,64 +128,64 @@ public static class DataSerializer
|
||||
var ct = template.Constants.FirstOrDefault(x => x.Value.Equals(intVal));
|
||||
|
||||
if (ct == null)
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
|
||||
|
||||
var rt = new List<byte>();
|
||||
rt.AddRange(template.ClassId.Data);
|
||||
rt.Add(ct.Index);
|
||||
|
||||
return (TransmissionTypeIdentifier.TypedEnum, rt.ToArray());
|
||||
return (TransmissionDataUnitIdentifier.TypedEnum, rt.ToArray());
|
||||
}
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) UInt8Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) UInt8Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
return (TransmissionTypeIdentifier.UInt8, new byte[] { (byte)value });
|
||||
return (TransmissionDataUnitIdentifier.UInt8, new byte[] { (byte)value });
|
||||
}
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) Int8Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) Int8Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
return (TransmissionTypeIdentifier.Int8, new byte[] { (byte)(sbyte)value });
|
||||
return (TransmissionDataUnitIdentifier.Int8, new byte[] { (byte)(sbyte)value });
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) Char8Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) Char8Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
return (TransmissionTypeIdentifier.Char8, new byte[] { (byte)(char)value });
|
||||
return (TransmissionDataUnitIdentifier.Char8, new byte[] { (byte)(char)value });
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) Char16Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) Char16Composer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
|
||||
var v = (char)value;
|
||||
var rt = new byte[2];
|
||||
fixed (byte* ptr = rt)
|
||||
*((char*)ptr) = v;
|
||||
return (TransmissionTypeIdentifier.Char16, rt);
|
||||
return (TransmissionDataUnitIdentifier.Char16, rt);
|
||||
|
||||
}
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) BoolComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) BoolComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
return ((bool)value ? TransmissionTypeIdentifier.True : TransmissionTypeIdentifier.False, new byte[0]);
|
||||
return ((bool)value ? TransmissionDataUnitIdentifier.True : TransmissionDataUnitIdentifier.False, new byte[0]);
|
||||
}
|
||||
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) NotModifiedComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) NotModifiedComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
return (TransmissionTypeIdentifier.NotModified, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.NotModified, new byte[0]);
|
||||
}
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) RawDataComposerFromArray(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) RawDataComposerFromArray(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
return (TransmissionTypeIdentifier.RawData, (byte[])value);
|
||||
return (TransmissionDataUnitIdentifier.RawData, (byte[])value);
|
||||
}
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) RawDataComposerFromList(dynamic value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) RawDataComposerFromList(dynamic value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
return (TransmissionTypeIdentifier.RawData, (value as List<byte>).ToArray());
|
||||
return (TransmissionDataUnitIdentifier.RawData, (value as List<byte>).ToArray());
|
||||
}
|
||||
|
||||
//public static (TransmissionTypeIdentifier, byte[]) ListComposerFromArray(dynamic value, DistributedConnection connection)
|
||||
//public static (TransmissionDataUnitIdentifier, byte[]) ListComposerFromArray(dynamic value, DistributedConnection connection)
|
||||
//{
|
||||
// var rt = new List<byte>();
|
||||
// var array = (object[])value;
|
||||
@@ -193,18 +193,18 @@ public static class DataSerializer
|
||||
// for (var i = 0; i < array.Length; i++)
|
||||
// rt.AddRange(Codec.Compose(array[i], connection));
|
||||
|
||||
// return (TransmissionTypeIdentifier.List, rt.ToArray());
|
||||
// return (TransmissionDataUnitIdentifier.List, rt.ToArray());
|
||||
//}
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) ListComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) ListComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
|
||||
var rt = ArrayComposer((IEnumerable)value, warehouse, connection);
|
||||
|
||||
if (rt == null)
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
else
|
||||
return (TransmissionTypeIdentifier.List, rt);
|
||||
return (TransmissionDataUnitIdentifier.List, rt);
|
||||
|
||||
|
||||
//var rt = new List<byte>();
|
||||
@@ -213,16 +213,16 @@ public static class DataSerializer
|
||||
//foreach (var o in list)
|
||||
// rt.AddRange(Codec.Compose(o, connection));
|
||||
|
||||
//return (TransmissionTypeIdentifier.List, rt.ToArray());
|
||||
//return (TransmissionDataUnitIdentifier.List, rt.ToArray());
|
||||
}
|
||||
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) TypedListComposer(IEnumerable value, Type type, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) TypedListComposer(IEnumerable value, Type type, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var composed = ArrayComposer((IEnumerable)value, warehouse, connection);
|
||||
|
||||
if (composed == null)
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
|
||||
var header = RepresentationType.FromType(type).Compose();
|
||||
|
||||
@@ -231,7 +231,7 @@ public static class DataSerializer
|
||||
rt.AddRange(header);
|
||||
rt.AddRange(composed);
|
||||
|
||||
return (TransmissionTypeIdentifier.TypedList, rt.ToArray());
|
||||
return (TransmissionDataUnitIdentifier.TypedList, rt.ToArray());
|
||||
}
|
||||
|
||||
//public static byte[] PropertyValueComposer(PropertyValue propertyValue, DistributedConnection connection)//, bool includeAge = true)
|
||||
@@ -245,10 +245,10 @@ public static class DataSerializer
|
||||
// .ToArray();
|
||||
//}
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) PropertyValueArrayComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) PropertyValueArrayComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
if (value == null)
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
|
||||
var rt = new List<byte>();
|
||||
var ar = value as PropertyValue[];
|
||||
@@ -260,13 +260,13 @@ public static class DataSerializer
|
||||
rt.AddRange(Codec.Compose(pv.Value, warehouse, connection));
|
||||
}
|
||||
|
||||
return (TransmissionTypeIdentifier.RawData, rt.ToArray());
|
||||
return (TransmissionDataUnitIdentifier.RawData, rt.ToArray());
|
||||
}
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) TypedMapComposer(object value, Type keyType, Type valueType, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) TypedMapComposer(object value, Type keyType, Type valueType, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
if (value == null)
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
|
||||
var kt = RepresentationType.FromType(keyType).Compose();
|
||||
var vt = RepresentationType.FromType(valueType).Compose();
|
||||
@@ -282,12 +282,12 @@ public static class DataSerializer
|
||||
rt.AddRange(Codec.Compose(el, warehouse, connection));
|
||||
|
||||
|
||||
return (TransmissionTypeIdentifier.TypedMap, rt.ToArray());
|
||||
return (TransmissionDataUnitIdentifier.TypedMap, rt.ToArray());
|
||||
}
|
||||
public static (TransmissionTypeIdentifier, byte[]) TypedDictionaryComposer(object value, Type keyType, Type valueType, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) TypedDictionaryComposer(object value, Type keyType, Type valueType, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
if (value == null)
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
|
||||
var kt = RepresentationType.FromType(keyType).Compose();
|
||||
var vt = RepresentationType.FromType(valueType).Compose();
|
||||
@@ -310,7 +310,7 @@ public static class DataSerializer
|
||||
rt.AddRange(Codec.Compose(el, warehouse, connection));
|
||||
|
||||
|
||||
return (TransmissionTypeIdentifier.TypedMap, rt.ToArray());
|
||||
return (TransmissionDataUnitIdentifier.TypedMap, rt.ToArray());
|
||||
}
|
||||
|
||||
public static byte[] ArrayComposer(IEnumerable value, Warehouse warehouse, DistributedConnection connection)
|
||||
@@ -320,7 +320,7 @@ public static class DataSerializer
|
||||
|
||||
var rt = new List<byte>();
|
||||
|
||||
TransmissionTypeIdentifier? previous = null;
|
||||
TransmissionDataUnitIdentifier? previous = null;
|
||||
byte[]? previousUUID = null;
|
||||
|
||||
foreach (var i in value)
|
||||
@@ -330,15 +330,15 @@ public static class DataSerializer
|
||||
previous = hdr;
|
||||
else if (hdr == previous)
|
||||
{
|
||||
if (hdr == TransmissionTypeIdentifier.Record)
|
||||
if (hdr == TransmissionDataUnitIdentifier.Record)
|
||||
{
|
||||
var newUUID = data.Take(16).ToArray();
|
||||
// check same uuid
|
||||
if (newUUID.SequenceEqual(previousUUID))
|
||||
rt.AddRange(TransmissionType.Compose(TransmissionTypeIdentifier.Same,
|
||||
rt.AddRange(TransmissionDataUnit.Compose(TransmissionDataUnitIdentifier.Same,
|
||||
data.Skip(16).ToArray()));
|
||||
else
|
||||
rt.AddRange(TransmissionType.Compose(hdr, data));
|
||||
rt.AddRange(TransmissionDataUnit.Compose(hdr, data));
|
||||
|
||||
previous = hdr;
|
||||
previousUUID = newUUID;
|
||||
@@ -351,32 +351,32 @@ public static class DataSerializer
|
||||
return rt.ToArray();
|
||||
}
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) ResourceListComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) ResourceListComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
if (value == null)
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
|
||||
|
||||
return (TransmissionTypeIdentifier.ResourceList, ArrayComposer((IEnumerable)value, warehouse, connection));
|
||||
return (TransmissionDataUnitIdentifier.ResourceList, ArrayComposer((IEnumerable)value, warehouse, connection));
|
||||
}
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) RecordListComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) RecordListComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
if (value == null)
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
|
||||
|
||||
return (TransmissionTypeIdentifier.RecordList, ArrayComposer((IEnumerable)value, warehouse, connection));
|
||||
return (TransmissionDataUnitIdentifier.RecordList, ArrayComposer((IEnumerable)value, warehouse, connection));
|
||||
}
|
||||
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) ResourceComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) ResourceComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var resource = (IResource)value;
|
||||
|
||||
if (resource.Instance == null || resource.Instance.IsDestroyed)
|
||||
{
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
}
|
||||
|
||||
if (Codec.IsLocalResource(resource, connection))
|
||||
@@ -384,21 +384,21 @@ public static class DataSerializer
|
||||
var rid = (resource as DistributedResource).DistributedResourceInstanceId;
|
||||
|
||||
if (rid <= 0xFF)
|
||||
return (TransmissionTypeIdentifier.LocalResource8, new byte[] { (byte)rid });
|
||||
return (TransmissionDataUnitIdentifier.LocalResource8, new byte[] { (byte)rid });
|
||||
else if (rid <= 0xFFFF)
|
||||
{
|
||||
var rt = new byte[2];
|
||||
fixed (byte* ptr = rt)
|
||||
*((ushort*)ptr) = (ushort)rid;
|
||||
|
||||
return (TransmissionTypeIdentifier.LocalResource16, rt);
|
||||
return (TransmissionDataUnitIdentifier.LocalResource16, rt);
|
||||
}
|
||||
else
|
||||
{
|
||||
var rt = new byte[4];
|
||||
fixed (byte* ptr = rt)
|
||||
*((uint*)ptr) = rid;
|
||||
return (TransmissionTypeIdentifier.LocalResource32, rt);
|
||||
return (TransmissionDataUnitIdentifier.LocalResource32, rt);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -410,29 +410,29 @@ public static class DataSerializer
|
||||
var rid = resource.Instance.Id;
|
||||
|
||||
if (rid <= 0xFF)
|
||||
return (TransmissionTypeIdentifier.RemoteResource8, new byte[] { (byte)rid });
|
||||
return (TransmissionDataUnitIdentifier.RemoteResource8, new byte[] { (byte)rid });
|
||||
else if (rid <= 0xFFFF)
|
||||
{
|
||||
var rt = new byte[2];
|
||||
fixed (byte* ptr = rt)
|
||||
*((ushort*)ptr) = (ushort)rid;
|
||||
|
||||
return (TransmissionTypeIdentifier.RemoteResource16, rt);
|
||||
return (TransmissionDataUnitIdentifier.RemoteResource16, rt);
|
||||
}
|
||||
else
|
||||
{
|
||||
var rt = new byte[4];
|
||||
fixed (byte* ptr = rt)
|
||||
*((uint*)ptr) = rid;
|
||||
return (TransmissionTypeIdentifier.RemoteResource32, rt);
|
||||
return (TransmissionDataUnitIdentifier.RemoteResource32, rt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) MapComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) MapComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
if (value == null)
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
|
||||
var rt = new List<byte>();
|
||||
var map = (IMap)value;
|
||||
@@ -440,16 +440,16 @@ public static class DataSerializer
|
||||
foreach (var el in map.Serialize())
|
||||
rt.AddRange(Codec.Compose(el, warehouse, connection));
|
||||
|
||||
return (TransmissionTypeIdentifier.Map, rt.ToArray());
|
||||
return (TransmissionDataUnitIdentifier.Map, rt.ToArray());
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) UUIDComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) UUIDComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
return (TransmissionTypeIdentifier.UUID, ((UUID)value).Data);
|
||||
return (TransmissionDataUnitIdentifier.UUID, ((UUID)value).Data);
|
||||
|
||||
}
|
||||
|
||||
public static unsafe (TransmissionTypeIdentifier, byte[]) RecordComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static unsafe (TransmissionDataUnitIdentifier, byte[]) RecordComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
var rt = new List<byte>();// BinaryList();
|
||||
var record = (IRecord)value;
|
||||
@@ -465,7 +465,7 @@ public static class DataSerializer
|
||||
rt.AddRange(Codec.Compose(propValue, warehouse, connection));
|
||||
}
|
||||
|
||||
return (TransmissionTypeIdentifier.Record, rt.ToArray());
|
||||
return (TransmissionDataUnitIdentifier.Record, rt.ToArray());
|
||||
}
|
||||
public static byte[] HistoryComposer(KeyList<PropertyTemplate, PropertyValue[]> history, Warehouse warehouse,
|
||||
DistributedConnection connection, bool prependLength = false)
|
||||
@@ -483,10 +483,10 @@ public static class DataSerializer
|
||||
return rt.ToArray();
|
||||
}
|
||||
|
||||
public static (TransmissionTypeIdentifier, byte[]) TupleComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
public static (TransmissionDataUnitIdentifier, byte[]) TupleComposer(object value, Warehouse warehouse, DistributedConnection connection)
|
||||
{
|
||||
if (value == null)
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
|
||||
var rt = new List<byte>();
|
||||
|
||||
@@ -502,11 +502,11 @@ public static class DataSerializer
|
||||
var composed = ArrayComposer(list, warehouse, connection);
|
||||
|
||||
if (composed == null)
|
||||
return (TransmissionTypeIdentifier.Null, new byte[0]);
|
||||
return (TransmissionDataUnitIdentifier.Null, new byte[0]);
|
||||
else
|
||||
{
|
||||
rt.AddRange(composed);
|
||||
return (TransmissionTypeIdentifier.TypedTuple, rt.ToArray());
|
||||
return (TransmissionDataUnitIdentifier.TypedTuple, rt.ToArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user