internal static void RecycleMsg(NetMsg msg) { if (msg == null) { return; } int cap; int capacity = msg.get_capacity(); int capacityIndex = -1; for (int i = 0, count = sizes.Count(); i < count; i++) { cap = sizes[i]; if (cap >= capacity) { capacityIndex = i; break; } } if (capacity >= 0) { SecurityQueue <NetMsg> idle = idlePool[capacityIndex]; idle.Enqueue(msg); } else { Debugger.LogError("recycle net msg error"); } }
internal static NetMsg GenNetMsg(int len) { if (len < 0) { return(null); } int capacity = 0; int cap = 1024; int capacityIndex = -1; for (int i = 0, count = sizes.Count; i < count; i++) { cap = sizes[i]; if (cap >= len) { capacity = cap; capacityIndex = i; break; } } if (capacity == 0) { return(null); } SecurityQueue <NetMsg> idle = idlePool[capacityIndex]; NetMsg msg; bool re = idle.Dequeue(out msg); if (!re) { msg = new NetMsg(); msg.init_data(capacity); } return(msg); }