IRC parsing, tokenization, and state handling in C#
at ircrobots 33 lines 1.2 kB view raw
1using System.Collections.Generic; 2using System.Threading.Tasks; 3using IRCTokens; 4 5namespace IRCRobots 6{ 7 public interface IServer 8 { 9 public IEnumerable<SentLine> SendRaw(string line, SendPriority sendPriority = SendPriority.Default); 10 public IEnumerable<SentLine> Send(Line line, SendPriority sendPriority = SendPriority.Default); 11 public void SetThrottle(int rate, float time); 12 public (string address, int port) ServerAddress(); 13 public Task Connect(ITCPTransport transport, ConnectionParams connectionParams); 14 public Task Disconnect(); 15 public void LinePreread(Line line); 16 public void LinePresend(Line line); 17 public Task LineRead(Line line); 18 public Task LineSend(Line line); 19 public Task STSPolicy(STSPolicy stsPolicy); 20 public Task ResumePolicy(ResumePolicy resumePolicy); 21 public bool CapAgreed(ICapability capability); 22 public string? CapAvailable(ICapability capability); 23 public Task<bool> SASLAuth(SASLParams saslParams); 24 } 25 26 public enum SendPriority 27 { 28 High = 0, 29 Medium = 10, 30 Low = 20, 31 Default = Medium 32 } 33}