示例#1
0
        public static byte[] getDataModelToByteArray(ProtoTypeEnum type, object model)
        {
            switch (type)
            {
            case ProtoTypeEnum.CLogin: {
                return(((CLogin.Builder)model).Build().ToByteArray());
            }

            case ProtoTypeEnum.SUserData: {
                return(((SUserData.Builder)model).Build().ToByteArray());
            }

            case ProtoTypeEnum.CEnterRoom: {
                return(((CEnterRoom.Builder)model).Build().ToByteArray());
            }

            case ProtoTypeEnum.COutRoom: {
                return(((COutRoom.Builder)model).Build().ToByteArray());
            }

            case ProtoTypeEnum.SOutRoom: {
                return(((SOutRoom.Builder)model).Build().ToByteArray());
            }

            case ProtoTypeEnum.SFishChapter: {
                return(((SFishChapter.Builder)model).Build().ToByteArray());
            }

            case ProtoTypeEnum.CHangUpRoom: {
                return(((CHangUpRoom.Builder)model).Build().ToByteArray());
            }

            case ProtoTypeEnum.SError: {
                return(((SError.Builder)model).Build().ToByteArray());
            }

            case ProtoTypeEnum.SSingleUpdate: {
                return(((SSingleUpdate.Builder)model).Build().ToByteArray());
            }

            case ProtoTypeEnum.CTest: {
                return(((CTest.Builder)model).Build().ToByteArray());
            }

            case ProtoTypeEnum.STest: {
                return(((STest.Builder)model).Build().ToByteArray());
            }

            case ProtoTypeEnum.CHeart: {
                return(((CHeart.Builder)model).Build().ToByteArray());
            }
            }
            return(null);
        }
示例#2
0
        public void sendMessage(ProtoTypeEnum type, byte[] cust)
        {
            int length = 0;

            if (null != cust)
            {
                length = cust.Length;
            }
            //总长度+类型长度+包体长度
            clean_buffers(CommandCollection.SOCK_HEAD_LENGTH + length);                 //);//初始化缓冲区(需要加上包长度值)
            writeUShort(Convert.ToUInt16(length + CommandCollection.SOCK_TYPE_LENGTH)); //长度
            writeUShort(Convert.ToUInt16(type));
            if (0 != length)
            {
                writeBytes(cust); //消息内容
            }
            flush();              //推出消息
        }
示例#3
0
        public static System.Object getDataModel(ProtoTypeEnum type)
        {
            if (dataModel.ContainsKey(type))
            {
                return(dataModel[type]);
            }
            else
            {
                switch (type)
                {
                case ProtoTypeEnum.CLogin: {
                    return(CLogin.CreateBuilder());
                }

                case ProtoTypeEnum.SUserData: {
                    return(SUserData.CreateBuilder());
                }

                case ProtoTypeEnum.CEnterRoom: {
                    return(CEnterRoom.CreateBuilder());
                }

                case ProtoTypeEnum.COutRoom: {
                    return(COutRoom.CreateBuilder());
                }

                case ProtoTypeEnum.SOutRoom: {
                    return(SOutRoom.CreateBuilder());
                }

                case ProtoTypeEnum.SFishChapter: {
                    return(SFishChapter.CreateBuilder());
                }

                case ProtoTypeEnum.CHangUpRoom: {
                    return(CHangUpRoom.CreateBuilder());
                }

                case ProtoTypeEnum.SError: {
                    return(SError.CreateBuilder());
                }

                case ProtoTypeEnum.SSingleUpdate: {
                    return(SSingleUpdate.CreateBuilder());
                }

                case ProtoTypeEnum.CTest: {
                    return(CTest.CreateBuilder());
                }

                case ProtoTypeEnum.STest: {
                    return(STest.CreateBuilder());
                }

                case ProtoTypeEnum.CHeart: {
                    return(CHeart.CreateBuilder());
                }
                }
                return(null);
            }
        }
示例#4
0
        public static System.Object getDataModel(ProtoTypeEnum type, byte[] bytes)
        {
            switch (type)
            {
            case ProtoTypeEnum.CLogin: {
                CLogin.Builder model;
                if (dataModel.ContainsKey(type))
                {
                    model = (CLogin.Builder)dataModel[type];
                    model.Clear();
                    model.MergeFrom(bytes);
                }
                else
                {
                    model = CLogin.ParseFrom(bytes).ToBuilder();
                    dataModel.Add(type, model);
                }
                return(model);
            }

            case ProtoTypeEnum.SUserData: {
                SUserData.Builder model;
                if (dataModel.ContainsKey(type))
                {
                    model = (SUserData.Builder)dataModel[type];
                    model.Clear();
                    model.MergeFrom(bytes);
                }
                else
                {
                    model = SUserData.ParseFrom(bytes).ToBuilder();
                    dataModel.Add(type, model);
                }
                return(model);
            }

            case ProtoTypeEnum.CEnterRoom: {
                CEnterRoom.Builder model;
                if (dataModel.ContainsKey(type))
                {
                    model = (CEnterRoom.Builder)dataModel[type];
                    model.Clear();
                    model.MergeFrom(bytes);
                }
                else
                {
                    model = CEnterRoom.ParseFrom(bytes).ToBuilder();
                    dataModel.Add(type, model);
                }
                return(model);
            }

            case ProtoTypeEnum.COutRoom: {
                COutRoom.Builder model;
                if (dataModel.ContainsKey(type))
                {
                    model = (COutRoom.Builder)dataModel[type];
                    model.Clear();
                    model.MergeFrom(bytes);
                }
                else
                {
                    model = COutRoom.ParseFrom(bytes).ToBuilder();
                    dataModel.Add(type, model);
                }
                return(model);
            }

            case ProtoTypeEnum.SOutRoom: {
                SOutRoom.Builder model;
                if (dataModel.ContainsKey(type))
                {
                    model = (SOutRoom.Builder)dataModel[type];
                    model.Clear();
                    model.MergeFrom(bytes);
                }
                else
                {
                    model = SOutRoom.ParseFrom(bytes).ToBuilder();
                    dataModel.Add(type, model);
                }
                return(model);
            }

            case ProtoTypeEnum.SFishChapter: {
                SFishChapter.Builder model;
                if (dataModel.ContainsKey(type))
                {
                    model = (SFishChapter.Builder)dataModel[type];
                    model.Clear();
                    model.MergeFrom(bytes);
                }
                else
                {
                    model = SFishChapter.ParseFrom(bytes).ToBuilder();
                    dataModel.Add(type, model);
                }
                return(model);
            }

            case ProtoTypeEnum.CHangUpRoom: {
                CHangUpRoom.Builder model;
                if (dataModel.ContainsKey(type))
                {
                    model = (CHangUpRoom.Builder)dataModel[type];
                    model.Clear();
                    model.MergeFrom(bytes);
                }
                else
                {
                    model = CHangUpRoom.ParseFrom(bytes).ToBuilder();
                    dataModel.Add(type, model);
                }
                return(model);
            }

            case ProtoTypeEnum.SError: {
                SError.Builder model;
                if (dataModel.ContainsKey(type))
                {
                    model = (SError.Builder)dataModel[type];
                    model.Clear();
                    model.MergeFrom(bytes);
                }
                else
                {
                    model = SError.ParseFrom(bytes).ToBuilder();
                    dataModel.Add(type, model);
                }
                return(model);
            }

            case ProtoTypeEnum.SSingleUpdate: {
                SSingleUpdate.Builder model;
                if (dataModel.ContainsKey(type))
                {
                    model = (SSingleUpdate.Builder)dataModel[type];
                    model.Clear();
                    model.MergeFrom(bytes);
                }
                else
                {
                    model = SSingleUpdate.ParseFrom(bytes).ToBuilder();
                    dataModel.Add(type, model);
                }
                return(model);
            }

            case ProtoTypeEnum.CTest: {
                CTest.Builder model;
                if (dataModel.ContainsKey(type))
                {
                    model = (CTest.Builder)dataModel[type];
                    model.Clear();
                    model.MergeFrom(bytes);
                }
                else
                {
                    model = CTest.ParseFrom(bytes).ToBuilder();
                    dataModel.Add(type, model);
                }
                return(model);
            }

            case ProtoTypeEnum.STest: {
                STest.Builder model;
                if (dataModel.ContainsKey(type))
                {
                    model = (STest.Builder)dataModel[type];
                    model.Clear();
                    model.MergeFrom(bytes);
                }
                else
                {
                    model = STest.ParseFrom(bytes).ToBuilder();
                    dataModel.Add(type, model);
                }
                return(model);
            }

            case ProtoTypeEnum.CHeart: {
                CHeart.Builder model;
                if (dataModel.ContainsKey(type))
                {
                    model = (CHeart.Builder)dataModel[type];
                    model.Clear();
                    model.MergeFrom(bytes);
                }
                else
                {
                    model = CHeart.ParseFrom(bytes).ToBuilder();
                    dataModel.Add(type, model);
                }
                return(model);
            }
            }
            return(null);
        }