public override Boolean isSamePacket(NetworkObjectBase packet) { NetworkObject <T> obj; try { obj = (NetworkObject <T>)packet; } catch { return(false); } if (buffer == null && obj.buffer == null) { return(true); } else if (buffer == null || obj.buffer == null) { return(false); } for (int i = 0; i < buffer.Length; i++) { if (Buffer.GetByte(obj.buffer, i) != Buffer.GetByte(buffer, i)) { return(false); } } return(true); }
/// <summary> /// 두 패킷이 같은 것인지 비교. 정확히는 두 패킷이 가진 버퍼의 크기가 같은 것인지 비교한다. /// </summary> /// <param name="packet"></param> /// <returns></returns> public override Boolean isSamePacket(NetworkObjectBase packet) { NetworkObject <T> obj; try { obj = packet as NetworkObject <T>; } catch { return(false); } //null이라도 같으면 true. if (buffer == null && obj.buffer == null) { return(true); } else if (buffer == null || obj.buffer == null) { return(false); //둘 중 하나가 null이면 false } else if (buffer.Length != obj.buffer.Length) { return(false); //버퍼의 크기가 달라도 false } for (int i = 0; i < buffer.Length; i++) { if (Buffer.GetByte(obj.buffer, i) != Buffer.GetByte(buffer, i)) { return(false); } } return(true); }
/// <summary> /// *** don't use it. it exists for comportability from lower version. *** /// </summary> /// <param name="src"></param> public void copyHeaderFrom(NetworkObjectBase src) { headerBuffer.SetValue(src.__tag, 0); headerBuffer.SetValue(src.__dataSize, 1); headerBuffer.SetValue(src.__id, 2); }
public abstract Boolean isSamePacket(NetworkObjectBase packet);