TLSharp/TeleSharp.TL/TLMethod.cs

37 lines
1,015 B
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
{
public abstract void deserializeResponse(BinaryReader stream);
2017-04-13 08:38:01 +02:00
2016-09-24 15:38:26 +02:00
#region MTPROTO
2017-04-13 08:38:01 +02:00
2016-09-24 15:38:26 +02:00
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;
}
2017-04-13 08:38:01 +02:00
public bool NeedResend => Dirty || Confirmed && !ConfirmReceived &&
DateTime.Now - SendTime > TimeSpan.FromSeconds(3);
2016-09-24 15:38:26 +02:00
2017-04-13 08:38:01 +02:00
#endregion
2016-09-24 15:38:26 +02:00
}
2017-04-13 08:38:01 +02:00
}