TLSharp/TeleSharp.TL/TLMethod.cs

46 lines
1 KiB
C#
Raw Normal View History

2016-09-24 15:38:26 +02:00
using System;
using System.IO;
namespace TeleSharp.TL
{
public abstract class TLMethod : TLObject
{
2017-12-20 12:06:31 +01:00
public virtual bool Confirmed { get; } = true;
2016-09-24 15:38:26 +02:00
public bool ConfirmReceived { get; set; }
2017-12-20 12:06:31 +01:00
public bool Dirty { get; set; }
2016-09-24 15:38:26 +02:00
2017-12-20 12:06:31 +01:00
public long MessageId { get; set; }
2016-09-24 15:38:26 +02:00
public bool NeedResend
{
get
{
return Dirty || (Confirmed && !ConfirmReceived && DateTime.Now - SendTime > TimeSpan.FromSeconds(3));
}
}
2017-12-20 12:06:31 +01:00
public virtual bool Responded { get; } = false;
public bool Sended { get; private set; }
public DateTime SendTime { get; private set; }
public int Sequence { get; set; }
public abstract void DeserializeResponse(BinaryReader stream);
public virtual void OnConfirm()
{
ConfirmReceived = true;
}
public virtual void OnSendSuccess()
{
SendTime = DateTime.Now;
Sended = true;
}
2016-09-24 15:38:26 +02:00
}
}