123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- namespace UniversalNetFrame451.IO;
- public class Data(byte[] rawData, Connection connection = null, DateTime? dateTime = default)
- {
- public byte[] RawData { get; } = rawData;
- public Connection Connection { get; } = connection;
- public DateTime DateTime { get; internal set; } = dateTime is null ? DateTime.Now : dateTime.Value;
- }
- public interface ISender
- {
- ISender NextSender { get; set; }
- bool Send(Data data);
- }
- public interface IReceiver
- {
- IReceiver PrevReceiver { get; set; }
- bool Receive(Data data);
- }
- public interface IConnect
- {
- IConnect PrevConnector { get; set; }
- void Connected(Connection connection);
- void Disconnected(Connection connection);
- }
- public interface IFilter : ISender, IReceiver, IConnect
- {
- }
- public abstract class BaseFilter : IFilter
- {
- public static BaseFilter operator >>(BaseFilter filter1, BaseFilter filter2)
- {
- filter1.NextSender = filter2;
- filter2.PrevReceiver = filter1;
- filter2.PrevConnector = filter1;
- return filter2;
- }
- public ISender NextSender { get; set; }
- public IReceiver PrevReceiver { get; set; }
- public IConnect PrevConnector { get; set; }
- public virtual bool Receive(Data data)
- {
- return this.PrevReceiver.Receive(data);
- }
- public virtual bool Send(Data data)
- {
- return this.NextSender.Send(data);
- }
- public virtual void Connected(Connection connection)
- {
- this.PrevConnector?.Connected(connection);
- }
- public virtual void Disconnected(Connection connection)
- {
- this.PrevConnector?.Disconnected(connection);
- }
- }
|