基线 SVN r240

SVN-Revision: r240
This commit is contained in:
cyf
2025-02-06 06:46:06 +00:00
commit ab56a9bcf7
5317 changed files with 902274 additions and 0 deletions
@@ -0,0 +1,142 @@
/******************************
* 说明:管理所有空闲的AsyncSocketUserToken,采用栈的管理方式,后进先出
* 创建人:龚宇超
* 创建日期:2018-01-23
* 修改人:
* 修改日期:
* 修改备注:
* 版本:1.0.0.0
******************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Lskj.SocketService
{
/// <summary>
/// 管理所有空闲的AsyncSocketUserToken,采用栈的管理方式,后进先出
/// </summary>
public class AsyncSocketUserTokenPool
{
private Stack<AsyncSocketUserToken> _pool;
public AsyncSocketUserTokenPool(int capacity)
{
_pool = new Stack<AsyncSocketUserToken>(capacity);
}
/// <summary>
/// 包含总数
/// </summary>
/// <value>The count.</value>
public int Count
{
get { return _pool.Count; }
}
/// <summary>
/// <para>说明:添加AsyncSocketUserToken</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-01-24 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="item">The item.</param>
/// <exception cref="System.ArgumentException">Items added to a AsyncSocketUserToken cannot be null</exception>
public void Push(AsyncSocketUserToken item)
{
if (item == null)
{
throw new ArgumentException("Items added to a AsyncSocketUserToken cannot be null");
}
lock (_pool)
{
_pool.Push(item);
}
}
/// <summary>
/// <para>说明:移除AsyncSocketUserToken并返回栈顶对象</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-01-24 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>AsyncSocketUserToken.</returns>
public AsyncSocketUserToken Pop()
{
lock (_pool)
{
return _pool.Pop();
}
}
}
/// <summary>
/// 管理所有空闲的AsyncSocketUserToken,采用List的管理方式
/// </summary>
public class AsyncSocketUserTokenList : Object
{
private List<AsyncSocketUserToken> _list;
public AsyncSocketUserTokenList()
{
_list = new List<AsyncSocketUserToken>();
}
/// <summary>
/// <para>说明:添加AsyncSocketUserToken</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-01-24 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="userToken">The user token.</param>
public void Add(AsyncSocketUserToken userToken)
{
lock(_list)
{
_list.Add(userToken);
}
}
/// <summary>
/// <para>说明:移除AsyncSocketUserToken</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-01-24 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="userToken">The user token.</param>
public void Remove(AsyncSocketUserToken userToken)
{
lock (_list)
{
_list.Remove(userToken);
}
}
/// <summary>
/// <para>说明:List To Array集合</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2018-01-24 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="array">The array.</param>
public void CopyList(ref AsyncSocketUserToken[] array)
{
lock (_list)
{
array = new AsyncSocketUserToken[_list.Count];
_list.CopyTo(array);
}
}
}
}