# Class IrcClientConnection | EchoHub Documentation
Manages a single IRC client TCP connection.

# Class IrcClientConnection

Namespace
  EchoHub.Server.Irc

Assembly
  EchoHub.Server.Irc.dll

Manages a single IRC client TCP connection.

    public sealed class IrcClientConnection : IAsyncDisposable

Inheritance
  object
  IrcClientConnection

Implements
  IAsyncDisposable

Inherited Members
  object.GetType()
  object.ToString()
  object.Equals(object)
  object.Equals(object, object)
  object.ReferenceEquals(object, object)
  object.GetHashCode()

## Constructors

### IrcClientConnection(TcpClient, Stream)

    public IrcClientConnection(TcpClient tcpClient, Stream stream)

#### Parameters

`tcpClient` TcpClient
`stream` Stream

## Properties

### AwayMessage

    public string? AwayMessage { get; set; }

#### Property Value

string

### CapNegotiating

    public bool CapNegotiating { get; set; }

#### Property Value

bool

### ConnectionId

    public string ConnectionId { get; }

#### Property Value

string

### Hostmask

    public string Hostmask { get; }

#### Property Value

string

### IsAuthenticated

    public bool IsAuthenticated { get; set; }

#### Property Value

bool

### IsRegistered

    public bool IsRegistered { get; set; }

#### Property Value

bool

### IsSasl

    public bool IsSasl { get; set; }

#### Property Value

bool

### JoinedChannels

    public HashSet<string> JoinedChannels { get; }

#### Property Value

HashSet<string>

### Nickname

    public string? Nickname { get; set; }

#### Property Value

string

### Password

    public string? Password { get; set; }

#### Property Value

string

### RealName

    public string? RealName { get; set; }

#### Property Value

string

### UserId

    public Guid? UserId { get; set; }

#### Property Value

Guid?

### Username

    public string? Username { get; set; }

#### Property Value

string

## Methods

### DisposeAsync()

    public ValueTask DisposeAsync()

#### Returns

ValueTask

### ReadLineAsync(CancellationToken)

    public Task<string?> ReadLineAsync(CancellationToken ct)

#### Parameters

`ct` CancellationToken

#### Returns

Task<string>

### SendAsync(string)

    public Task SendAsync(string line)

#### Parameters

`line` string

#### Returns

Task

### SendNumericAsync(string, string, string)

    public Task SendNumericAsync(string serverName, string numeric, string text)

#### Parameters

`serverName` string
`numeric` string
`text` string

#### Returns

Task

### SendNumericAsync(string, string, string, string)

    public Task SendNumericAsync(string serverName, string numeric, string target, string text)

#### Parameters

`serverName` string
`numeric` string
`target` string
`text` string

#### Returns

Task