/// <summary> /// 从缓冲池里分配一个消息包 /// </summary> /// <param name="buffer"></param> /// <returns></returns> public static PacketReader AcquireContent(DogBuffer buffer) { var ret = s_pool.AcquireContent(); ret.SetBuffer(buffer); return(ret); }
/// <summary> /// 从缓冲池里分配一个消息包 /// </summary> /// <param name="codeId"></param> /// <returns></returns> public static PacketWriter AcquireContent(ushort codeId) { var ret = s_pool.AcquireContent(); ret.SetNetCode(codeId); return(ret); }
public static UpdateEntityPool <T> AcquireContent(MangoDBService db, T entity) { var ret = s_pool.AcquireContent(); ret.DB = db; ret.Entity = entity; return(ret); }
/// <summary> /// 从缓冲池里获得数据 /// </summary> /// <returns></returns> public static DogBuffer32K GetFromPool32K() { var ret = s_pools32K.AcquireContent(); ret.Use(); ret.Length = 0; return(ret); }
/// <summary> /// 从缓冲池里获得一个对象 /// </summary> /// <returns></returns> public static ParamActionTaskT <T1, T> AcquireContent(string actionName) { var ret = TaskPool.AcquireContent(); ret.isRelease = false; ret.TaskProfile = ActionTaskProfile.GetNetTaskProfile(actionName); ret.CreateTime = OneServer.NowTime; return(ret); }
/// <summary> /// 从缓冲池里获得一个对象 /// </summary> /// <returns></returns> public static NetTaskT <T> AcquireContent(ushort packetId) { var ret = TaskPool.AcquireContent(); ret.isRelease = false; ret.TaskProfile = NetTaskProfile.GetNetTaskProfile(packetId); ret.RecvTime = OneServer.NowTime; ret._packetId = packetId; return(ret); }
public static SocketAsyncEventArgs AcquireSocketArg() { //Interlocked.Increment(ref s_OutstandingArgs); //Interlocked.Increment(ref s_AcquiredArgs); //Console.WriteLine("Acquiring SocketAsyncEventArg {0}:{1}", s_OutstandingArgs, s_AcquiredArgs); SocketAsyncEventArgs args = ObjectPoolMgr.AcquireContent();//.ObtainObject<SocketAsyncEventArgs>(); CleanSocketArg(args); return(args); }
internal void ObjectPoolTest() { ObjectPool <EntityClass> pool = new ObjectPool <EntityClass>("EntityClass", 64); pool.ReleaseContent(new EntityClass { Name = "first" }); var entity = pool.AcquireContent(); Log.Info(pool.GetPoolInfo().ToString()); }
/// <summary> /// 从缓冲池里获得数据 /// </summary> /// <returns></returns> public static DogBuffer GetFromPool4K() { lock (lockOjb) { start: var ret = s_pools.AcquireContent(); if (ret.referenceCounter != 0) { Logs.Error("dog buffer4k is used. counter = {0}", ret.referenceCounter); #if DEBUG var stack = new System.Diagnostics.StackTrace(0); Logs.Info("dog buffer is used. strace = {0}", stack.ToString()); #endif goto start; } ret.Use(); //ret.referenceCounter++; ret.Length = 0; return(ret); } }
/// <summary> /// 从缓冲池里获得数据 /// </summary> /// <returns></returns> public static DogBuffer32K GetFromPool32K() { lock (lockOjb) { start1: var ret = s_pools32K.AcquireContent(); if (ret.referenceCounter != 0) { Logs.Error("dog buffer32 is used."); //Logs.Error(string.Format("buff is exists {0} exitstCount={1}", exitsList.Contains(ret).ToString(), exitsList.Count)); #if DEBUG var stack = new System.Diagnostics.StackTrace(0); Logs.Error("dog buffer is used. strace = {0}", stack.ToString()); #endif goto start1; } //exitsList.Add(ret); //ret.referenceCounter++; ret.Use(); ret.Length = 0; return(ret); } }