📄 jabberendpoint.cs
字号:
using System;
using gowk.core.managers;
using gowk.net.Sockets;
namespace gowk.core
{
/// <summary>
/// JabberEndPoint 的摘要说明。
/// </summary>
public abstract class JabberEndPoint:System.IDisposable
{
private JabberStream js;
private JabberStreamReader jsr;
private JabberStreamWriter jsw;
private JabberMessageWatcher watcher;
private ManagerCollection managers;
private GSecureSocket sock;
private State state;
private Jid jid;
public event System.EventHandler StateChange;
public JabberEndPoint()
{
this.state=State.Disconnected;
this.js=new JabberStream();
this.jsr=new JabberStreamReader();
this.jsw=new JabberStreamWriter();
this.jsw.Stream=js;
this.jsr.Stream=js;
this.watcher=new JabberMessageWatcher(this);
this.managers=new ManagerCollection();
this.js.JabberStreamEnd+=new EventHandler(js_JabberStreamEnd);
}
#region
public ManagerCollection Managers
{
get{return this.managers;}
set{this.managers=value;}
}
public Jid Jid
{
get{return this.jid;}
set{this.jid=value;}
}
public virtual State State
{
get{return this.state;}
set
{
System.Diagnostics.Trace.WriteLine("set State to:"+value.ToString());
if(this.state!=value)
{
this.state=value;
if(this.StateChange!=null)
this.StateChange(this,System.EventArgs.Empty);
}
}
}
public JabberStream JabberStream
{
get{return this.js;}
}
public JabberStreamReader JabberStreamReader
{
get{return this.jsr;}
}
public JabberStreamWriter JabberStreamWriter
{
get{return this.jsw;}
}
public JabberMessageWatcher JabberMessageWatcher
{
get{return this.watcher;}
}
public GSecureSocket Socket
{
get{return this.sock;}
set{this.sock=value;}
}
#endregion
#region IDisposable 成员
public virtual void Dispose()
{
if((this.sock!=null)&&this.sock.Connected)
{
this.sock.Close();
}
}
#endregion
private void js_JabberStreamEnd(object sender, EventArgs e)
{
try
{
if(this.Socket!=null)
{
this.Socket.Close();
this.sock=null;
}
}
catch
{
}
this.State=State.Disconnected;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -