Make CancellationToken parameter optional

This commit is contained in:
Ruslan Iarmukhamedov 2019-10-25 10:58:55 +06:00
parent 96f9660b48
commit 0c86a0674b
2 changed files with 26 additions and 107 deletions

View file

@ -49,12 +49,8 @@ namespace TLSharp.Core
_transport = new TcpTransport(Session.DataCenter.Address, Session.DataCenter.Port, _handler); _transport = new TcpTransport(Session.DataCenter.Address, Session.DataCenter.Port, _handler);
} }
public async Task ConnectAsync(bool reconnect = false)
{
await ConnectAsync(CancellationToken.None, reconnect).ConfigureAwait(false);
}
public async Task ConnectAsync(CancellationToken token, bool reconnect = false) public async Task ConnectAsync(bool reconnect = false, CancellationToken token = default(CancellationToken))
{ {
token.ThrowIfCancellationRequested(); token.ThrowIfCancellationRequested();
@ -105,7 +101,7 @@ namespace TLSharp.Core
_transport = new TcpTransport(dc.IpAddress, dc.Port, _handler); _transport = new TcpTransport(dc.IpAddress, dc.Port, _handler);
Session.DataCenter = dataCenter; Session.DataCenter = dataCenter;
await ConnectAsync(token, true).ConfigureAwait(false); await ConnectAsync(true, token).ConfigureAwait(false);
if (Session.TLUser != null) if (Session.TLUser != null)
{ {
@ -149,12 +145,7 @@ namespace TLSharp.Core
return Session.TLUser != null; return Session.TLUser != null;
} }
public async Task<bool> IsPhoneRegisteredAsync(string phoneNumber) public async Task<bool> IsPhoneRegisteredAsync(string phoneNumber, CancellationToken token = default(CancellationToken))
{
return await IsPhoneRegisteredAsync(phoneNumber, CancellationToken.None).ConfigureAwait(false);
}
public async Task<bool> IsPhoneRegisteredAsync(string phoneNumber, CancellationToken token)
{ {
if (String.IsNullOrWhiteSpace(phoneNumber)) if (String.IsNullOrWhiteSpace(phoneNumber))
throw new ArgumentNullException(nameof(phoneNumber)); throw new ArgumentNullException(nameof(phoneNumber));
@ -166,12 +157,7 @@ namespace TLSharp.Core
return authCheckPhoneRequest.Response.PhoneRegistered; return authCheckPhoneRequest.Response.PhoneRegistered;
} }
public async Task<string> SendCodeRequestAsync(string phoneNumber) public async Task<string> SendCodeRequestAsync(string phoneNumber, CancellationToken token = default(CancellationToken))
{
return await SendCodeRequestAsync(phoneNumber, CancellationToken.None).ConfigureAwait(false);
}
public async Task<string> SendCodeRequestAsync(string phoneNumber, CancellationToken token)
{ {
if (String.IsNullOrWhiteSpace(phoneNumber)) if (String.IsNullOrWhiteSpace(phoneNumber))
throw new ArgumentNullException(nameof(phoneNumber)); throw new ArgumentNullException(nameof(phoneNumber));
@ -183,12 +169,7 @@ namespace TLSharp.Core
return request.Response.PhoneCodeHash; return request.Response.PhoneCodeHash;
} }
public async Task<TLUser> MakeAuthAsync(string phoneNumber, string phoneCodeHash, string code) public async Task<TLUser> MakeAuthAsync(string phoneNumber, string phoneCodeHash, string code, CancellationToken token = default(CancellationToken))
{
return await MakeAuthAsync(phoneNumber, phoneCodeHash, code, CancellationToken.None).ConfigureAwait(false);
}
public async Task<TLUser> MakeAuthAsync(string phoneNumber, string phoneCodeHash, string code, CancellationToken token)
{ {
if (String.IsNullOrWhiteSpace(phoneNumber)) if (String.IsNullOrWhiteSpace(phoneNumber))
throw new ArgumentNullException(nameof(phoneNumber)); throw new ArgumentNullException(nameof(phoneNumber));
@ -208,12 +189,7 @@ namespace TLSharp.Core
return ((TLUser)request.Response.User); return ((TLUser)request.Response.User);
} }
public async Task<TLPassword> GetPasswordSetting() public async Task<TLPassword> GetPasswordSetting(CancellationToken token = default(CancellationToken))
{
return await GetPasswordSetting(CancellationToken.None).ConfigureAwait(false);
}
public async Task<TLPassword> GetPasswordSetting(CancellationToken token)
{ {
var request = new TLRequestGetPassword(); var request = new TLRequestGetPassword();
@ -222,12 +198,7 @@ namespace TLSharp.Core
return ((TLPassword)request.Response); return ((TLPassword)request.Response);
} }
public async Task<TLUser> MakeAuthWithPasswordAsync(TLPassword password, string password_str) public async Task<TLUser> MakeAuthWithPasswordAsync(TLPassword password, string password_str, CancellationToken token = default(CancellationToken))
{
return await MakeAuthWithPasswordAsync(password, password_str, CancellationToken.None).ConfigureAwait(false);
}
public async Task<TLUser> MakeAuthWithPasswordAsync(TLPassword password, string password_str, CancellationToken token)
{ {
token.ThrowIfCancellationRequested(); token.ThrowIfCancellationRequested();
@ -246,12 +217,7 @@ namespace TLSharp.Core
return ((TLUser)request.Response.User); return ((TLUser)request.Response.User);
} }
public async Task<TLUser> SignUpAsync(string phoneNumber, string phoneCodeHash, string code, string firstName, string lastName) public async Task<TLUser> SignUpAsync(string phoneNumber, string phoneCodeHash, string code, string firstName, string lastName, CancellationToken token = default(CancellationToken))
{
return await SignUpAsync(phoneNumber, phoneCodeHash, code, firstName, lastName, CancellationToken.None).ConfigureAwait(false);
}
public async Task<TLUser> SignUpAsync(string phoneNumber, string phoneCodeHash, string code, string firstName, string lastName, CancellationToken token)
{ {
var request = new TLRequestSignUp() { PhoneNumber = phoneNumber, PhoneCode = code, PhoneCodeHash = phoneCodeHash, FirstName = firstName, LastName = lastName }; var request = new TLRequestSignUp() { PhoneNumber = phoneNumber, PhoneCode = code, PhoneCodeHash = phoneCodeHash, FirstName = firstName, LastName = lastName };
@ -262,12 +228,7 @@ namespace TLSharp.Core
return ((TLUser)request.Response.User); return ((TLUser)request.Response.User);
} }
public async Task<T> SendRequestAsync<T>(TLMethod methodToExecute) public async Task<T> SendRequestAsync<T>(TLMethod methodToExecute, CancellationToken token = default(CancellationToken))
{
return await SendRequestAsync<T>(methodToExecute, CancellationToken.None).ConfigureAwait(false);
}
public async Task<T> SendRequestAsync<T>(TLMethod methodToExecute, CancellationToken token)
{ {
await RequestWithDcMigration(methodToExecute, token).ConfigureAwait(false); await RequestWithDcMigration(methodToExecute, token).ConfigureAwait(false);
@ -276,12 +237,7 @@ namespace TLSharp.Core
return (T)result; return (T)result;
} }
public async Task<TLContacts> GetContactsAsync() public async Task<TLContacts> GetContactsAsync(CancellationToken token = default(CancellationToken))
{
return await GetContactsAsync(CancellationToken.None).ConfigureAwait(false);
}
public async Task<TLContacts> GetContactsAsync(CancellationToken token)
{ {
if (!IsUserAuthorized()) if (!IsUserAuthorized())
throw new InvalidOperationException("Authorize user first!"); throw new InvalidOperationException("Authorize user first!");
@ -291,12 +247,7 @@ namespace TLSharp.Core
return await SendRequestAsync<TLContacts>(req, token).ConfigureAwait(false); return await SendRequestAsync<TLContacts>(req, token).ConfigureAwait(false);
} }
public async Task<TLAbsUpdates> SendMessageAsync(TLAbsInputPeer peer, string message) public async Task<TLAbsUpdates> SendMessageAsync(TLAbsInputPeer peer, string message, CancellationToken token = default(CancellationToken))
{
return await SendMessageAsync(peer, message, CancellationToken.None).ConfigureAwait(false);
}
public async Task<TLAbsUpdates> SendMessageAsync(TLAbsInputPeer peer, string message, CancellationToken token)
{ {
if (!IsUserAuthorized()) if (!IsUserAuthorized())
throw new InvalidOperationException("Authorize user first!"); throw new InvalidOperationException("Authorize user first!");
@ -310,12 +261,7 @@ namespace TLSharp.Core
}, token).ConfigureAwait(false); }, token).ConfigureAwait(false);
} }
public async Task<Boolean> SendTypingAsync(TLAbsInputPeer peer) public async Task<Boolean> SendTypingAsync(TLAbsInputPeer peer, CancellationToken token = default(CancellationToken))
{
return await SendTypingAsync(peer, CancellationToken.None).ConfigureAwait(false);
}
public async Task<Boolean> SendTypingAsync(TLAbsInputPeer peer, CancellationToken token)
{ {
var req = new TLRequestSetTyping() var req = new TLRequestSetTyping()
{ {
@ -325,12 +271,8 @@ namespace TLSharp.Core
return await SendRequestAsync<Boolean>(req, token).ConfigureAwait(false); return await SendRequestAsync<Boolean>(req, token).ConfigureAwait(false);
} }
public async Task<TLAbsDialogs> GetUserDialogsAsync(int offsetDate = 0, int offsetId = 0, TLAbsInputPeer offsetPeer = null, int limit = 100) public async Task<TLAbsDialogs> GetUserDialogsAsync(int offsetDate = 0, int offsetId = 0, TLAbsInputPeer offsetPeer = null, int limit = 100,
{ CancellationToken token = default(CancellationToken))
return await GetUserDialogsAsync(CancellationToken.None, offsetDate, offsetId, offsetPeer, limit).ConfigureAwait(false);
}
public async Task<TLAbsDialogs> GetUserDialogsAsync(CancellationToken token, int offsetDate = 0, int offsetId = 0, TLAbsInputPeer offsetPeer = null, int limit = 100)
{ {
if (!IsUserAuthorized()) if (!IsUserAuthorized())
throw new InvalidOperationException("Authorize user first!"); throw new InvalidOperationException("Authorize user first!");
@ -348,12 +290,7 @@ namespace TLSharp.Core
return await SendRequestAsync<TLAbsDialogs>(req, token).ConfigureAwait(false); return await SendRequestAsync<TLAbsDialogs>(req, token).ConfigureAwait(false);
} }
public async Task<TLAbsUpdates> SendUploadedPhoto(TLAbsInputPeer peer, TLAbsInputFile file, string caption) public async Task<TLAbsUpdates> SendUploadedPhoto(TLAbsInputPeer peer, TLAbsInputFile file, string caption, CancellationToken token = default(CancellationToken))
{
return await SendUploadedPhoto(peer, file, caption, CancellationToken.None).ConfigureAwait(false);
}
public async Task<TLAbsUpdates> SendUploadedPhoto(TLAbsInputPeer peer, TLAbsInputFile file, string caption, CancellationToken token)
{ {
return await SendRequestAsync<TLAbsUpdates>(new TLRequestSendMedia() return await SendRequestAsync<TLAbsUpdates>(new TLRequestSendMedia()
{ {
@ -365,12 +302,8 @@ namespace TLSharp.Core
}, token).ConfigureAwait(false); }, token).ConfigureAwait(false);
} }
public async Task<TLAbsUpdates> SendUploadedDocument(TLAbsInputPeer peer, TLAbsInputFile file, string caption, string mimeType, TLVector<TLAbsDocumentAttribute> attributes) public async Task<TLAbsUpdates> SendUploadedDocument(TLAbsInputPeer peer, TLAbsInputFile file, string caption, string mimeType, TLVector<TLAbsDocumentAttribute> attributes,
{ CancellationToken token = default(CancellationToken))
return await SendUploadedDocument(peer, file, caption, mimeType, attributes, CancellationToken.None).ConfigureAwait(false);
}
public async Task<TLAbsUpdates> SendUploadedDocument(TLAbsInputPeer peer, TLAbsInputFile file, string caption, string mimeType, TLVector<TLAbsDocumentAttribute> attributes, CancellationToken token)
{ {
return await SendRequestAsync<TLAbsUpdates>(new TLRequestSendMedia() return await SendRequestAsync<TLAbsUpdates>(new TLRequestSendMedia()
{ {
@ -388,15 +321,9 @@ namespace TLSharp.Core
}, token).ConfigureAwait(false); }, token).ConfigureAwait(false);
} }
public async Task<TLFile> GetFile(TLAbsInputFileLocation location, int filePartSize, int offset = 0) public async Task<TLFile> GetFile(TLAbsInputFileLocation location, int filePartSize, int offset = 0, CancellationToken token = default(CancellationToken))
{ {
return await GetFile(location, filePartSize, CancellationToken.None, offset).ConfigureAwait(false); var result = await SendRequestAsync<TLFile>(new TLRequestGetFile()
}
public async Task<TLFile> GetFile(TLAbsInputFileLocation location, int filePartSize, CancellationToken token, int offset = 0)
{
TLFile result = null;
result = await SendRequestAsync<TLFile>(new TLRequestGetFile()
{ {
Location = location, Location = location,
Limit = filePartSize, Limit = filePartSize,
@ -405,12 +332,13 @@ namespace TLSharp.Core
return result; return result;
} }
public async Task SendPingAsync(CancellationToken token) public async Task SendPingAsync(CancellationToken token = default(CancellationToken))
{ {
await _sender.SendPingAsync(token).ConfigureAwait(false); await _sender.SendPingAsync(token).ConfigureAwait(false);
} }
public async Task<TLAbsMessages> GetHistoryAsync(TLAbsInputPeer peer, CancellationToken token, int offsetId = 0, int offsetDate = 0, int addOffset = 0, int limit = 100, int maxId = 0, int minId = 0) public async Task<TLAbsMessages> GetHistoryAsync(TLAbsInputPeer peer, int offsetId = 0, int offsetDate = 0, int addOffset = 0, int limit = 100, int maxId = 0,
int minId = 0, CancellationToken token = default(CancellationToken))
{ {
if (!IsUserAuthorized()) if (!IsUserAuthorized())
throw new InvalidOperationException("Authorize user first!"); throw new InvalidOperationException("Authorize user first!");
@ -433,13 +361,9 @@ namespace TLSharp.Core
/// </summary> /// </summary>
/// <param name="q">User or chat name</param> /// <param name="q">User or chat name</param>
/// <param name="limit">Max result count</param> /// <param name="limit">Max result count</param>
/// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
public async Task<TLFound> SearchUserAsync(string q, int limit = 10) public async Task<TLFound> SearchUserAsync(string q, int limit = 10, CancellationToken token = default(CancellationToken))
{
return await SearchUserAsync(q, CancellationToken.None, limit).ConfigureAwait(false);
}
public async Task<TLFound> SearchUserAsync(string q, CancellationToken token, int limit = 10)
{ {
var r = new TeleSharp.TL.Contacts.TLRequestSearch var r = new TeleSharp.TL.Contacts.TLRequestSearch
{ {

View file

@ -29,12 +29,7 @@ namespace TLSharp.Core.Utils
return md5_checksum; return md5_checksum;
} }
public static async Task<TLAbsInputFile> UploadFile(this TelegramClient client, string name, StreamReader reader) public static async Task<TLAbsInputFile> UploadFile(this TelegramClient client, string name, StreamReader reader, CancellationToken token = default(CancellationToken))
{
return await UploadFile(client, name, reader, CancellationToken.None).ConfigureAwait(false);
}
public static async Task<TLAbsInputFile> UploadFile(this TelegramClient client, string name, StreamReader reader, CancellationToken token)
{ {
const long tenMb = 10 * 1024 * 1024; const long tenMb = 10 * 1024 * 1024;
return await UploadFile(name, reader, client, reader.BaseStream.Length >= tenMb, token).ConfigureAwait(false); return await UploadFile(name, reader, client, reader.BaseStream.Length >= tenMb, token).ConfigureAwait(false);