TLSharp/TeleSharp.TL/TLMethod.cs

41 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-11-09 10:21:33 +01:00
2016-09-24 15:38:26 +02:00
public abstract void deserializeResponse(BinaryReader stream);
#region MTPROTO
public long MessageId { get; set; }
public int Sequence { get; set; }
public bool Dirty { get; set; }
public bool Sended { get; private set; }
public DateTime SendTime { get; private set; }
public bool ConfirmReceived { get; set; }
public virtual bool Confirmed { get; } = true;
public virtual bool Responded { get; } = false;
public virtual void OnSendSuccess()
{
SendTime = DateTime.Now;
Sended = true;
}
public virtual void OnConfirm()
{
ConfirmReceived = true;
}
public bool NeedResend
{
get
{
return Dirty || (Confirmed && !ConfirmReceived && DateTime.Now - SendTime > TimeSpan.FromSeconds(3));
}
}
#endregion
}
}