using System;
using System.Threading;
using System.Threading.Tasks;

namespace DeviceCommand.Base
{
    public interface ITcp : IBaseInterface,IDisposable
    {
        Task SendAsync(byte[] buffer, CancellationToken ct = default);
        Task SendAsync(string str, CancellationToken ct = default);
        Task<byte[]> ReadAsync(int length, CancellationToken ct = default);
        Task<string> ReadAsync(string delimiter = "\n", CancellationToken ct = default);
        Task<string> WriteReadAsync(string command, string delimiter = "\n", CancellationToken ct = default);
    }
}