using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using Misuzilla.Net.Irc;
namespace Misuzilla.Applications.TwitterIrcGateway
{
///
/// TwitterIrcGatewayへのクライアントの接続を表すクラスです。
///
public class Connection : ConnectionBase
{
///
/// Twitter上のユーザを取得します。
///
public User TwitterUser { get; private set; }
public Connection(Server server, TcpClient tcpClient) : base(server, tcpClient)
{
_Counter.Increment(ref _Counter.Connection);
}
~Connection()
{
_Counter.Decrement(ref _Counter.Connection);
}
protected override AuthenticateResult OnAuthenticate(UserInfo userInfo)
{
AuthenticateResult authResult = CurrentServer.Authentication.Authenticate(CurrentServer, this, userInfo);
if (authResult is TwitterAuthenticateResult)
{
TwitterUser = ((TwitterAuthenticateResult) authResult).User;
}
return authResult;
}
protected override void OnAuthenticateSucceeded()
{
Session session = CurrentServer.GetOrCreateSession(TwitterUser);
session.Attach(this);
}
protected override void OnAuthenticateFailed(AuthenticateResult authenticateResult)
{
}
}
}