コード例 #1
0
        public override bool ReadConnectRequest(BitStream stream, ref string errorString)
        {
            if (!base.ReadConnectRequest(stream, ref errorString))
            {
                return(false);
            }

            stream.Read(out uint classCount);

            var myCount = NetClassRep.GetNetClassCount((uint)GetNetClassGroup(), (uint)NetClassType.NetClassTypeEvent);

            if (myCount <= classCount)
            {
                EventClassCount = myCount;
            }
            else
            {
                EventClassCount = classCount;
                if (!NetClassRep.IsVersionBorderCount((uint)GetNetClassGroup(), (uint)NetClassType.NetClassTypeEvent, EventClassVersion))
                {
                    return(false);
                }
            }

            EventClassVersion = (uint)NetClassRep.GetClass((uint)GetNetClassGroup(), (uint)NetClassType.NetClassTypeEvent, EventClassCount - 1).ClassVersion;
            EventClassBitSize = Utils.GetNextBinLog2(EventClassCount);
            return(true);
        }
コード例 #2
0
        public override bool ReadConnectAccept(BitStream stream, ref string errorString)
        {
            if (!base.ReadConnectAccept(stream, ref errorString))
            {
                return(false);
            }

            stream.Read(out EventClassCount);
            var myCount = NetClassRep.GetNetClassCount((uint)GetNetClassGroup(), (uint)NetClassType.NetClassTypeEvent);

            if (EventClassCount > myCount)
            {
                return(false);
            }

            if (!NetClassRep.IsVersionBorderCount((uint)GetNetClassGroup(), (uint)NetClassType.NetClassTypeEvent, EventClassCount))
            {
                return(false);
            }

            EventClassBitSize = Utils.GetNextBinLog2(EventClassCount);
            return(true);
        }