首页->新知实践->Afritxia在线用户统计、在线编辑器、验证码图片>>Net.AfritXia.Web/OnlineStat/_OnlineUser/OnlineUserDB.cs>>源码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:Afritxia在线用户统计、在线编辑器、验证码图片
当前文件:
AfritxiaWebTest/Net.AfritXia.Web/OnlineStat/_OnlineUser/OnlineUserDB.cs[5K,2009-6-12 11:31:33],打开代码结构图
AfritxiaWebTest/Net.AfritXia.Web/OnlineStat/_OnlineUser/OnlineUserDB.cs[5K,2009-6-12 11:31:33],打开代码结构图1/* 2
* OnlineUserDB.cs @Microsoft Visual Studio 2008 <.NET Framework 2.0 (or Higher)> 3
* AfritXia 4
* 2008/3/21 5
* 6
* Copyright(c) http://www.AfritXia.NET/ 7
* 8
*/ 9
10
using System; 11
using System.Collections.Generic; 12
13
namespace Net.AfritXia.Web.OnlineStat 14
{ 15
/// <summary> 16
/// 在线用户数据库 17
/// </summary> 18
internal class OnlineUserDB 19
{ 20
// 在线用户集合 21
private List<OnlineUser> m_onlineUserList = null; 22
23
类构造器 32
33
/// <summary> 34
/// 插入新用户 35
/// </summary> 36
/// <param name="newUser"></param> 37
public void Insert(OnlineUser newUser) 38
{ 39
lock (this) 40
{ 41
this.m_onlineUserList.Add(newUser); 42
} 43
} 44
45
/// <summary> 46
/// 删除用户 47
/// </summary> 48
/// <param name="delUser"></param> 49
public void Delete(OnlineUser delUser) 50
{ 51
lock (this) 52
{ 53
this.m_onlineUserList.RemoveAll((new PredicateDelete(delUser)).Predicate); 54
} 55
} 56
57
/// <summary> 58
/// 清除超时用户 59
/// </summary> 60
/// <param name="timeOutMinute">超时分钟数</param> 61
public void ClearTimeOut(int timeOutMinute) 62
{ 63
lock (this) 64
{ 65
this.m_onlineUserList.RemoveAll((new PredicateTimeOut(timeOutMinute)).Predicate); 66
} 67
} 68
69
/// <summary> 70
/// 排序在线用户列表 71
/// </summary> 72
public void Sort() 73
{ 74
// 按活动时间进行排序 75
this.m_onlineUserList.Sort(CompareByActiveTime); 76
} 77
78
/// <summary> 79
/// 获取所有用户 80
/// </summary> 81
/// <returns></returns> 82
public IList<OnlineUser> Select() 83
{ 84
return this.m_onlineUserList.ToArray(); 85
} 86
87
/// <summary> 88
/// 获取在线用户数量 89
/// </summary> 90
/// <returns></returns> 91
public int Count() 92
{ 93
return this.m_onlineUserList.Count; 94
} 95
96
用户删除条件断言 154
155
用户超时条件断言 186
187
/// <summary> 188
/// 比较两个用户的活动时间 189
/// </summary> 190
/// <param name="x"></param> 191
/// <param name="y"></param> 192
/// <returns></returns> 193
private static int CompareByActiveTime(OnlineUser x, OnlineUser y) 194
{ 195
if (x == null) 196
throw new NullReferenceException("X 值为空 ( X Is Null )"); 197
198
if (y == null) 199
throw new NullReferenceException("Y 值为空 ( Y Is Null )"); 200
201
if (x.ActiveTime > y.ActiveTime) 202
return -1; 203
204
if (x.ActiveTime < y.ActiveTime) 205
return +1; 206
207
return 0; 208
} 209
} 210
}




* OnlineUserDB.cs @Microsoft Visual Studio 2008 <.NET Framework 2.0 (or Higher)>

