2
0
mirror of https://github.com/esiur/esiur-dotnet.git synced 2025-10-30 15:41:35 +00:00
This commit is contained in:
2025-10-15 17:34:18 +03:00
parent 9386cc7a84
commit a63a9b5511
11 changed files with 477 additions and 172 deletions

View File

@@ -438,7 +438,7 @@ public partial class DistributedConnection : NetworkConnection, IStore
{
// Invoke
case IIPPacketNotification.PropertyModified:
IIPNotificationPropertyModified(dt, msg);
IIPNotificationPropertyModified(dt);
break;
case IIPPacketNotification.EventOccurred:
IIPNotificationEventOccurred(dt, msg);
@@ -448,7 +448,7 @@ public partial class DistributedConnection : NetworkConnection, IStore
IIPNotificationResourceDestroyed(dt, msg);
break;
case IIPPacketNotification.ResourceReassigned:
IIPNotificationResourceReassigned(dt, msg);
IIPNotificationResourceReassigned(dt);
break;
case IIPPacketNotification.ResourceMoved:
IIPNotificationResourceMoved(dt, msg);
@@ -537,7 +537,7 @@ public partial class DistributedConnection : NetworkConnection, IStore
switch (packet.Reply)
{
case IIPPacketReply.Completed:
IIPReplyCompleted(packet.CallbackId, dt, msg);
IIPReplyCompleted(packet.CallbackId, dt);
break;
case IIPPacketReply.Propagated:
IIPReplyPropagated(packet.CallbackId, dt, msg);
@@ -554,7 +554,7 @@ public partial class DistributedConnection : NetworkConnection, IStore
break;
case IIPPacketReply.Chunk:
IIPReplyChunk(packet.CallbackId, dt, msg);
IIPReplyChunk(packet.CallbackId, dt);
break;
case IIPPacketReply.Warning:
@@ -1344,7 +1344,6 @@ public partial class DistributedConnection : NetworkConnection, IStore
protected override void DataReceived(NetworkBuffer data)
{
//Console.WriteLine("DR " + data.Available + " " + RemoteEndPoint.ToString());
var msg = data.Read();
uint offset = 0;
uint ends = (uint)msg.Length;
@@ -1353,8 +1352,6 @@ public partial class DistributedConnection : NetworkConnection, IStore
var chunkId = (new Random()).Next(1000, 1000000);
//var list = new List<Map<string, object>>();// double, IIPPacketCommand>();
this.Socket.Hold();

View File

@@ -262,7 +262,7 @@ partial class DistributedConnection
SendReply(IIPPacketReply.Chunk, callbackId, chunk);
}
void IIPReplyCompleted(uint callbackId, ParsedTDU dataType, byte[] data)
void IIPReplyCompleted(uint callbackId, ParsedTDU dataType)
{
var req = requests.Take(callbackId);
@@ -272,7 +272,7 @@ partial class DistributedConnection
return;
}
var (_, parsed) = Codec.ParseAsync(data, 0, this, null, dataType);
var (_, parsed) = Codec.ParseAsync(dataType, this, null);
if (parsed is AsyncReply reply)
{
reply.Then(result =>
@@ -374,14 +374,14 @@ partial class DistributedConnection
void IIPReplyChunk(uint callbackId, ParsedTDU dataType, byte[] data)
void IIPReplyChunk(uint callbackId, ParsedTDU dataType)
{
var req = requests[callbackId];
if (req == null)
return;
var (_, parsed) = Codec.ParseAsync(data, dataType.Offset, this, null, dataType);
var (_, parsed) = Codec.ParseAsync(dataType, this, null);
if (parsed is AsyncReply reply)
reply.Then(result => req.TriggerChunk(result));
@@ -389,7 +389,7 @@ partial class DistributedConnection
req.TriggerChunk(parsed);
}
void IIPNotificationResourceReassigned(ParsedTDU dataType, byte[] data)
void IIPNotificationResourceReassigned(ParsedTDU dataType)
{
// uint resourceId, uint newResourceId
}
@@ -429,11 +429,11 @@ partial class DistributedConnection
}
void IIPNotificationPropertyModified(ParsedTDU dataType, byte[] data)
void IIPNotificationPropertyModified(ParsedTDU dataType)
{
// resourceId, index, value
var (valueOffset, valueSize, args) =
DataDeserializer.LimitedCountListParser(data, dataType.Offset, dataType.ContentLength, Instance.Warehouse, 2);
DataDeserializer.LimitedCountListParser(dataType.Data, dataType.Offset, dataType.ContentLength, Instance.Warehouse, 2);
var rid = (uint)args[0];
var index = (byte)args[1];
@@ -447,7 +447,7 @@ partial class DistributedConnection
var item = new AsyncReply<DistributedResourceQueueItem>();
queue.Add(item);
var (_, parsed) = Codec.ParseAsync(data, valueOffset, this, null);
var (_, parsed) = Codec.ParseAsync(dataType.Data, valueOffset, this, null);
if (parsed is AsyncReply)
{
@@ -663,7 +663,7 @@ partial class DistributedConnection
void IIPRequestCreateResource(uint callback, ParsedTDU dataType, byte[] data)
{
var (_, parsed) = Codec.ParseAsync(data, 0, this, null, dataType);
var (_, parsed) = Codec.ParseAsync(dataType, this, null);
var args = (object[])parsed;

View File

@@ -117,7 +117,7 @@ public abstract class NetworkServer<TConnection> : IDestructible where TConnecti
if (s == null)
{
Console.Write("sock == null");
Global.Log("NetworkServer", LogType.Error, "sock == null");
return;
}

View File

@@ -188,13 +188,13 @@ public class IIPAuthPacket : Packet
if (NotEnough(offset, ends, 1))
return -dataLengthNeeded;
(var size, DataType) = ParsedTDU.Parse(data, offset, ends);
DataType = ParsedTDU.Parse(data, offset, ends);
if (DataType == null)
return -(int)size;
if (DataType.Value.Class == TDUClass.Invalid)
return -(int)DataType.Value.TotalLength;
offset += (uint)size;
offset += (uint)DataType.Value.TotalLength;
}
else if (Command == IIPAuthPacketCommand.Acknowledge)
@@ -208,13 +208,13 @@ public class IIPAuthPacket : Packet
if (NotEnough(offset, ends, 1))
return -dataLengthNeeded;
(var size, DataType) = ParsedTDU.Parse(data, offset, ends);
DataType = ParsedTDU.Parse(data, offset, ends);
if (DataType == null)
return -(int)size;
if (DataType.Value.Class == TDUClass.Invalid)
return -(int)DataType.Value.TotalLength;
offset += (uint)size;
offset += (uint)DataType.Value.TotalLength;
}
else if (Command == IIPAuthPacketCommand.Action)
{
@@ -280,12 +280,12 @@ public class IIPAuthPacket : Packet
Reference = data.GetUInt32(offset, Endian.Little);
offset += 4;
(var size, DataType) = ParsedTDU.Parse(data, offset, ends);
DataType = ParsedTDU.Parse(data, offset, ends);
if (DataType == null)
return -(int)size;
if (DataType.Value.Class == TDUClass.Invalid)
return -(int)DataType.Value.TotalLength;
offset += (uint)size;
offset += (uint)DataType.Value.TotalLength;
}
else if (Action == IIPAuthPacketAction.IAuthHashed)
@@ -445,12 +445,12 @@ public class IIPAuthPacket : Packet
if (NotEnough(offset, ends, 1))
return -dataLengthNeeded;
(var size, DataType) = ParsedTDU.Parse(data, offset, ends);
DataType = ParsedTDU.Parse(data, offset, ends);
if (DataType == null)
return -(int)size;
if (DataType.Value.Class == TDUClass.Invalid)
return -(int)DataType.Value.TotalLength;
offset += (uint)size;
offset += (uint)DataType.Value.TotalLength;
}
}

View File

@@ -37,10 +37,10 @@ class IIPPacket : Packet
public uint CallbackId { get; set; }
public IIPPacketMethod Method { get; set; }
public IIPPacketRequest Request { get; set; }
public IIPPacketReply Reply { get; set; }
public IIPPacketRequest Request { get; set; }
public IIPPacketReply Reply { get; set; }
public IIPPacketNotification Notification { get; set; }
public IIPPacketNotification Notification { get; set; }
public byte Extension { get; set; }
@@ -57,12 +57,12 @@ class IIPPacket : Packet
public override string ToString()
{
return Method switch
return Method switch
{
IIPPacketMethod.Notification => $"{Method} {Notification}",
IIPPacketMethod.Request => $"{Method} {Request}",
IIPPacketMethod.Reply => $"{Method} {Reply}",
IIPPacketMethod.Extension => $"{Method} {Extension}",
IIPPacketMethod.Request => $"{Method} {Request}",
IIPPacketMethod.Reply => $"{Method} {Reply}",
IIPPacketMethod.Extension => $"{Method} {Extension}",
_ => $"{Method}"
};
}
@@ -124,12 +124,12 @@ class IIPPacket : Packet
if (NotEnough(offset, ends, 1))
return -dataLengthNeeded;
(var size, DataType) = ParsedTDU.Parse(data, offset, ends);
DataType = ParsedTDU.Parse(data, offset, ends);
if (DataType == null)
return -(int)size;
if (DataType.Value.Class == TDUClass.Invalid)
return -(int)DataType.Value.TotalLength;
offset += (uint)size;
offset += (uint)DataType.Value.TotalLength;
}
else
{