コード例 #1
0
            public override Blueprint.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                UnknownFieldSet.Builder builder = null;
                while (input.ReadTag(ref num, ref str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(Blueprint._blueprintFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = Blueprint._blueprintFieldTags[index];
                        }
                        else
                        {
                            if (builder == null)
                            {
                                builder = UnknownFieldSet.CreateBuilder(this.get_UnknownFields());
                            }
                            this.ParseUnknownField(input, builder, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 8:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            if (builder != null)
                            {
                                this.set_UnknownFields(builder.Build());
                            }
                            return(this);
                        }
                        if (builder == null)
                        {
                            builder = UnknownFieldSet.CreateBuilder(this.get_UnknownFields());
                        }
                        this.ParseUnknownField(input, builder, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasId = input.ReadInt32(ref this.result.id_);
                }
                if (builder != null)
                {
                    this.set_UnknownFields(builder.Build());
                }
                return(this);
            }
コード例 #2
0
            public override objectICarriableTrans.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                UnknownFieldSet.Builder unknownFields = null;
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(objectICarriableTrans._objectICarriableTransFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = objectICarriableTrans._objectICarriableTransFieldTags[index];
                        }
                        else
                        {
                            if (unknownFields == null)
                            {
                                unknownFields = UnknownFieldSet.CreateBuilder(this.UnknownFields);
                            }
                            this.ParseUnknownField(input, unknownFields, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 8:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            if (unknownFields != null)
                            {
                                this.UnknownFields = unknownFields.Build();
                            }
                            return(this);
                        }
                        if (unknownFields == null)
                        {
                            unknownFields = UnknownFieldSet.CreateBuilder(this.UnknownFields);
                        }
                        this.ParseUnknownField(input, unknownFields, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasTransCarrierID = input.ReadInt32(ref this.result.transCarrierID_);
                }
                if (unknownFields != null)
                {
                    this.UnknownFields = unknownFields.Build();
                }
                return(this);
            }
コード例 #3
0
            public override PushListResult.Builder MergeFrom(
                ICodedInputStream input,
                ExtensionRegistry extensionRegistry)
            {
                this.PrepareBuilder();
                UnknownFieldSet.Builder unknownFields = (UnknownFieldSet.Builder)null;
                uint   fieldTag;
                string fieldName;

                while (input.ReadTag(out fieldTag, out fieldName))
                {
                    if (fieldTag == 0U && fieldName != null)
                    {
                        int index = Array.BinarySearch <string>(PushListResult._pushListResultFieldNames, fieldName, (IComparer <string>)StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            fieldTag = PushListResult._pushListResultFieldTags[index];
                        }
                        else
                        {
                            if (unknownFields == null)
                            {
                                unknownFields = UnknownFieldSet.CreateBuilder(this.UnknownFields);
                            }
                            this.ParseUnknownField(input, unknownFields, extensionRegistry, fieldTag, fieldName);
                            continue;
                        }
                    }
                    if (fieldTag == 0U)
                    {
                        throw InvalidProtocolBufferException.InvalidTag();
                    }
                    if (fieldTag != 10U)
                    {
                        if (WireFormat.IsEndGroupTag(fieldTag))
                        {
                            if (unknownFields != null)
                            {
                                this.UnknownFields = unknownFields.Build();
                            }
                            return(this);
                        }
                        if (unknownFields == null)
                        {
                            unknownFields = UnknownFieldSet.CreateBuilder(this.UnknownFields);
                        }
                        this.ParseUnknownField(input, unknownFields, extensionRegistry, fieldTag, fieldName);
                    }
                    else
                    {
                        input.ReadMessageArray <PushResult>(fieldTag, fieldName, (ICollection <PushResult>) this.result.results_, PushResult.DefaultInstance, extensionRegistry);
                    }
                }
                if (unknownFields != null)
                {
                    this.UnknownFields = unknownFields.Build();
                }
                return(this);
            }
コード例 #4
0
            public override objectICarriableTrans.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                UnknownFieldSet.Builder builder = null;
                while (input.ReadTag(out num, out str))
                {
                    if (num == 0 && str != null)
                    {
                        int num1 = Array.BinarySearch <string>(objectICarriableTrans._objectICarriableTransFieldNames, str, StringComparer.Ordinal);
                        if (num1 < 0)
                        {
                            if (builder == null)
                            {
                                builder = UnknownFieldSet.CreateBuilder(this.UnknownFields);
                            }
                            this.ParseUnknownField(input, builder, extensionRegistry, num, str);
                            continue;
                        }
                        else
                        {
                            num = objectICarriableTrans._objectICarriableTransFieldTags[num1];
                        }
                    }
                    uint num2 = num;
                    if (num2 == 0)
                    {
                        throw InvalidProtocolBufferException.InvalidTag();
                    }
                    if (num2 == 8)
                    {
                        this.result.hasTransCarrierID = input.ReadInt32(ref this.result.transCarrierID_);
                    }
                    else
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            if (builder != null)
                            {
                                this.UnknownFields = builder.Build();
                            }
                            return(this);
                        }
                        if (builder == null)
                        {
                            builder = UnknownFieldSet.CreateBuilder(this.UnknownFields);
                        }
                        this.ParseUnknownField(input, builder, extensionRegistry, num, str);
                    }
                }
                if (builder != null)
                {
                    this.UnknownFields = builder.Build();
                }
                return(this);
            }
コード例 #5
0
ファイル: SnsObjectOp.cs プロジェクト: kxlcn/android-weixin
            public override SnsObjectOp.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(SnsObjectOp._snsObjectOpFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = SnsObjectOp._snsObjectOpFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 8:
                    {
                        this.result.hasId = input.ReadUInt64(ref this.result.id_);
                        continue;
                    }

                    case 0x10:
                    {
                        this.result.hasOpType = input.ReadUInt32(ref this.result.opType_);
                        continue;
                    }

                    case 0x1a:
                    {
                        SKBuiltinBuffer_t.Builder builder = SKBuiltinBuffer_t.CreateBuilder();
                        if (this.result.hasExt)
                        {
                            builder.MergeFrom(this.Ext);
                        }
                        input.ReadMessage(builder, extensionRegistry);
                        this.Ext = builder.BuildPartial();
                        continue;
                    }
                    }
                    if (WireFormat.IsEndGroupTag(num))
                    {
                        return(this);
                    }
                    this.ParseUnknownField(input, extensionRegistry, num, str);
                }
                return(this);
            }
コード例 #6
0
ファイル: SendAuthReq.cs プロジェクト: yinyue200/MicroMsgSdk
            public override SendAuthReq.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                this.PrepareBuilder();
                uint   num;
                string text;

                while (input.ReadTag(out num, out text))
                {
                    if (num == 0u && text != null)
                    {
                        int num2 = Array.BinarySearch <string>(SendAuthReq._sendAuthReqFieldNames, text, StringComparer.Ordinal);
                        if (num2 < 0)
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, text);
                            continue;
                        }
                        num = SendAuthReq._sendAuthReqFieldTags[num2];
                    }
                    uint num3 = num;
                    if (num3 <= 10u)
                    {
                        if (num3 == 0u)
                        {
                            throw InvalidProtocolBufferException.InvalidTag();
                        }
                        if (num3 == 10u)
                        {
                            BaseReqP.Builder builder = BaseReqP.CreateBuilder();
                            if (this.result.hasBase)
                            {
                                builder.MergeFrom(this.Base);
                            }
                            input.ReadMessage(builder, extensionRegistry);
                            this.Base = builder.BuildPartial();
                            continue;
                        }
                    }
                    else
                    {
                        if (num3 == 18u)
                        {
                            this.result.hasScope = input.ReadString(ref this.result.scope_);
                            continue;
                        }
                        if (num3 == 26u)
                        {
                            this.result.hasState = input.ReadString(ref this.result.state_);
                            continue;
                        }
                    }
                    if (WireFormat.IsEndGroupTag(num))
                    {
                        return(this);
                    }
                    this.ParseUnknownField(input, extensionRegistry, num, text);
                }
                return(this);
            }
コード例 #7
0
            public override ModChatRoomTopic.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(ModChatRoomTopic._modChatRoomTopicFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = ModChatRoomTopic._modChatRoomTopicFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 10:
                    {
                        SKBuiltinString_t.Builder builder = SKBuiltinString_t.CreateBuilder();
                        if (this.result.hasChatRoomName)
                        {
                            builder.MergeFrom(this.ChatRoomName);
                        }
                        input.ReadMessage(builder, extensionRegistry);
                        this.ChatRoomName = builder.BuildPartial();
                        continue;
                    }

                    case 0x12:
                    {
                        SKBuiltinString_t.Builder builder2 = SKBuiltinString_t.CreateBuilder();
                        if (this.result.hasChatRoomTopic)
                        {
                            builder2.MergeFrom(this.ChatRoomTopic);
                        }
                        input.ReadMessage(builder2, extensionRegistry);
                        this.ChatRoomTopic = builder2.BuildPartial();
                        continue;
                    }
                    }
                    if (WireFormat.IsEndGroupTag(num))
                    {
                        return(this);
                    }
                    this.ParseUnknownField(input, extensionRegistry, num, str);
                }
                return(this);
            }
コード例 #8
0
            public override SnsObjectDetailResponse.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(SnsObjectDetailResponse._snsObjectDetailResponseFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = SnsObjectDetailResponse._snsObjectDetailResponseFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 10:
                    {
                        micromsg.BaseResponse.Builder builder = micromsg.BaseResponse.CreateBuilder();
                        if (this.result.hasBaseResponse)
                        {
                            builder.MergeFrom(this.BaseResponse);
                        }
                        input.ReadMessage(builder, extensionRegistry);
                        this.BaseResponse = builder.BuildPartial();
                        continue;
                    }

                    case 0x12:
                    {
                        SnsObject.Builder builder2 = SnsObject.CreateBuilder();
                        if (this.result.hasObject)
                        {
                            builder2.MergeFrom(this.Object);
                        }
                        input.ReadMessage(builder2, extensionRegistry);
                        this.Object = builder2.BuildPartial();
                        continue;
                    }
                    }
                    if (WireFormat.IsEndGroupTag(num))
                    {
                        return(this);
                    }
                    this.ParseUnknownField(input, extensionRegistry, num, str);
                }
                return(this);
            }
コード例 #9
0
ファイル: BaseRespP.cs プロジェクト: yinyue200/MicroMsgSdk
            public override BaseRespP.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                this.PrepareBuilder();
                uint   num;
                string text;

                while (input.ReadTag(out num, out text))
                {
                    if (num == 0u && text != null)
                    {
                        int num2 = Array.BinarySearch <string>(BaseRespP._baseRespPFieldNames, text, StringComparer.Ordinal);
                        if (num2 < 0)
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, text);
                            continue;
                        }
                        num = BaseRespP._baseRespPFieldTags[num2];
                    }
                    uint num3 = num;
                    if (num3 <= 8u)
                    {
                        if (num3 == 0u)
                        {
                            throw InvalidProtocolBufferException.InvalidTag();
                        }
                        if (num3 == 8u)
                        {
                            this.result.hasType = input.ReadUInt32(ref this.result.type_);
                            continue;
                        }
                    }
                    else
                    {
                        if (num3 == 18u)
                        {
                            this.result.hasTransaction = input.ReadString(ref this.result.transaction_);
                            continue;
                        }
                        if (num3 == 24u)
                        {
                            this.result.hasErrCode = input.ReadUInt32(ref this.result.errCode_);
                            continue;
                        }
                        if (num3 == 34u)
                        {
                            this.result.hasErrStr = input.ReadString(ref this.result.errStr_);
                            continue;
                        }
                    }
                    if (WireFormat.IsEndGroupTag(num))
                    {
                        return(this);
                    }
                    this.ParseUnknownField(input, extensionRegistry, num, text);
                }
                return(this);
            }
コード例 #10
0
ファイル: DelContactMsg.cs プロジェクト: kxlcn/android-weixin
            public override DelContactMsg.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(DelContactMsg._delContactMsgFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = DelContactMsg._delContactMsgFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 10:
                    {
                        SKBuiltinString_t.Builder builder = SKBuiltinString_t.CreateBuilder();
                        if (this.result.hasUserName)
                        {
                            builder.MergeFrom(this.UserName);
                        }
                        input.ReadMessage(builder, extensionRegistry);
                        this.UserName = builder.BuildPartial();
                        continue;
                    }

                    case 0x10:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            return(this);
                        }
                        this.ParseUnknownField(input, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasMaxMsgId = input.ReadInt32(ref this.result.maxMsgId_);
                }
                return(this);
            }
コード例 #11
0
            public override LinkedinContactItem.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(LinkedinContactItem._linkedinContactItemFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = LinkedinContactItem._linkedinContactItemFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 10:
                    {
                        this.result.hasLinkedinName = input.ReadString(ref this.result.linkedinName_);
                        continue;
                    }

                    case 0x12:
                    {
                        this.result.hasLinkedinMemberID = input.ReadString(ref this.result.linkedinMemberID_);
                        continue;
                    }

                    case 0x1a:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            return(this);
                        }
                        this.ParseUnknownField(input, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasLinkedinPublicUrl = input.ReadString(ref this.result.linkedinPublicUrl_);
                }
                return(this);
            }
コード例 #12
0
            public override WXAppExtendMessageP.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(WXAppExtendMessageP._wXAppExtendMessagePFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = WXAppExtendMessageP._wXAppExtendMessagePFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 10:
                    {
                        this.result.hasFileData = input.ReadBytes(ref this.result.fileData_);
                        continue;
                    }

                    case 0x12:
                    {
                        this.result.hasExtInfo = input.ReadString(ref this.result.extInfo_);
                        continue;
                    }

                    case 0x1a:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            return(this);
                        }
                        this.ParseUnknownField(input, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasFileName = input.ReadString(ref this.result.fileName_);
                }
                return(this);
            }
コード例 #13
0
ファイル: GmailInfo.cs プロジェクト: kxlcn/android-weixin
            public override GmailInfo.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(GmailInfo._gmailInfoFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = GmailInfo._gmailInfoFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 10:
                    {
                        this.result.hasGmailAcct = input.ReadString(ref this.result.gmailAcct_);
                        continue;
                    }

                    case 0x10:
                    {
                        this.result.hasGmailSwitch = input.ReadUInt32(ref this.result.gmailSwitch_);
                        continue;
                    }

                    case 0x18:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            return(this);
                        }
                        this.ParseUnknownField(input, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasGmailErrCode = input.ReadUInt32(ref this.result.gmailErrCode_);
                }
                return(this);
            }
コード例 #14
0
            public override ChatRoomMemberData.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(ChatRoomMemberData._chatRoomMemberDataFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = ChatRoomMemberData._chatRoomMemberDataFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 8:
                    {
                        this.result.hasMemberCount = input.ReadUInt32(ref this.result.memberCount_);
                        continue;
                    }

                    case 0x12:
                    {
                        input.ReadMessageArray <ChatRoomMemberInfo>(num, str, this.result.chatRoomMember_, ChatRoomMemberInfo.DefaultInstance, extensionRegistry);
                        continue;
                    }

                    case 0x18:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            return(this);
                        }
                        this.ParseUnknownField(input, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasInfoMask = input.ReadUInt32(ref this.result.infoMask_);
                }
                return(this);
            }
コード例 #15
0
            // Token: 0x06001103 RID: 4355 RVA: 0x0003E9B4 File Offset: 0x0003CBB4
            public override RustProto.Blueprint.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                this.PrepareBuilder();
                UnknownFieldSet.Builder builder = null;
                uint   num;
                string text;

                while (input.ReadTag(ref num, ref text))
                {
                    if (num == 0u && text != null)
                    {
                        int num2 = Array.BinarySearch <string>(RustProto.Blueprint._blueprintFieldNames, text, StringComparer.Ordinal);
                        if (num2 < 0)
                        {
                            if (builder == null)
                            {
                                builder = UnknownFieldSet.CreateBuilder(this.UnknownFields);
                            }
                            this.ParseUnknownField(input, builder, extensionRegistry, num, text);
                            continue;
                        }
                        num = RustProto.Blueprint._blueprintFieldTags[num2];
                    }
                    uint num3 = num;
                    if (num3 == 0u)
                    {
                        throw InvalidProtocolBufferException.InvalidTag();
                    }
                    if (num3 != 8u)
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            if (builder != null)
                            {
                                this.UnknownFields = builder.Build();
                            }
                            return(this);
                        }
                        if (builder == null)
                        {
                            builder = UnknownFieldSet.CreateBuilder(this.UnknownFields);
                        }
                        this.ParseUnknownField(input, builder, extensionRegistry, num, text);
                    }
                    else
                    {
                        this.result.hasId = input.ReadInt32(ref this.result.id_);
                    }
                }
                if (builder != null)
                {
                    this.UnknownFields = builder.Build();
                }
                return(this);
            }
コード例 #16
0
            public override GetMessageFromWXReq.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(GetMessageFromWXReq._getMessageFromWXReqFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = GetMessageFromWXReq._getMessageFromWXReqFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 10:
                    {
                        BaseReqP.Builder builder = BaseReqP.CreateBuilder();
                        if (this.result.hasBase)
                        {
                            builder.MergeFrom(this.Base);
                        }
                        input.ReadMessage(builder, extensionRegistry);
                        this.Base = builder.BuildPartial();
                        continue;
                    }

                    case 0x12:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            return(this);
                        }
                        this.ParseUnknownField(input, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasUsername = input.ReadString(ref this.result.username_);
                }
                return(this);
            }
コード例 #17
0
            public override BuiltinIP.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(BuiltinIP._builtinIPFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = BuiltinIP._builtinIPFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 8:
                    {
                        this.result.hasType = input.ReadUInt32(ref this.result.type_);
                        continue;
                    }

                    case 0x10:
                    {
                        this.result.hasPort = input.ReadUInt32(ref this.result.port_);
                        continue;
                    }

                    case 0x1a:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            return(this);
                        }
                        this.ParseUnknownField(input, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasIP = input.ReadBytes(ref this.result.iP_);
                }
                return(this);
            }
コード例 #18
0
            public override PushListResult.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                this.PrepareBuilder();
                UnknownFieldSet.Builder builder = null;
                uint   num;
                string text;

                while (input.ReadTag(out num, out text))
                {
                    if (num == 0u && text != null)
                    {
                        int num2 = Array.BinarySearch <string>(PushListResult._pushListResultFieldNames, text, StringComparer.Ordinal);
                        if (num2 < 0)
                        {
                            if (builder == null)
                            {
                                builder = UnknownFieldSet.CreateBuilder(this.UnknownFields);
                            }
                            this.ParseUnknownField(input, builder, extensionRegistry, num, text);
                            continue;
                        }
                        num = PushListResult._pushListResultFieldTags[num2];
                    }
                    if (num == 0u)
                    {
                        throw InvalidProtocolBufferException.InvalidTag();
                    }
                    if (num != 10u)
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            if (builder != null)
                            {
                                this.UnknownFields = builder.Build();
                            }
                            return(this);
                        }
                        if (builder == null)
                        {
                            builder = UnknownFieldSet.CreateBuilder(this.UnknownFields);
                        }
                        this.ParseUnknownField(input, builder, extensionRegistry, num, text);
                    }
                    else
                    {
                        input.ReadMessageArray <PushResult>(num, text, this.result.results_, PushResult.DefaultInstance, extensionRegistry);
                    }
                }
                if (builder != null)
                {
                    this.UnknownFields = builder.Build();
                }
                return(this);
            }
コード例 #19
0
            public override WXAppExtendMessageP.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                this.PrepareBuilder();
                uint   num;
                string text;

                while (input.ReadTag(out num, out text))
                {
                    if (num == 0u && text != null)
                    {
                        int num2 = Array.BinarySearch <string>(WXAppExtendMessageP._wXAppExtendMessagePFieldNames, text, StringComparer.Ordinal);
                        if (num2 < 0)
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, text);
                            continue;
                        }
                        num = WXAppExtendMessageP._wXAppExtendMessagePFieldTags[num2];
                    }
                    uint num3 = num;
                    if (num3 <= 10u)
                    {
                        if (num3 == 0u)
                        {
                            throw InvalidProtocolBufferException.InvalidTag();
                        }
                        if (num3 == 10u)
                        {
                            this.result.hasFileData = input.ReadBytes(ref this.result.fileData_);
                            continue;
                        }
                    }
                    else
                    {
                        if (num3 == 18u)
                        {
                            this.result.hasExtInfo = input.ReadString(ref this.result.extInfo_);
                            continue;
                        }
                        if (num3 == 26u)
                        {
                            this.result.hasFileName = input.ReadString(ref this.result.fileName_);
                            continue;
                        }
                    }
                    if (WireFormat.IsEndGroupTag(num))
                    {
                        return(this);
                    }
                    this.ParseUnknownField(input, extensionRegistry, num, text);
                }
                return(this);
            }
コード例 #20
0
            public override BaseResponse.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(BaseResponse._baseResponseFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = BaseResponse._baseResponseFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 8:
                    {
                        this.result.hasRet = input.ReadInt32(ref this.result.ret_);
                        continue;
                    }

                    case 0x12:
                    {
                        SKBuiltinString_t.Builder builder = SKBuiltinString_t.CreateBuilder();
                        if (this.result.hasErrMsg)
                        {
                            builder.MergeFrom(this.ErrMsg);
                        }
                        input.ReadMessage(builder, extensionRegistry);
                        this.ErrMsg = builder.BuildPartial();
                        continue;
                    }
                    }
                    if (WireFormat.IsEndGroupTag(num))
                    {
                        return(this);
                    }
                    this.ParseUnknownField(input, extensionRegistry, num, str);
                }
                return(this);
            }
コード例 #21
0
            public override ModBrandSetting.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(ModBrandSetting._modBrandSettingFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = ModBrandSetting._modBrandSettingFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 8:
                    {
                        this.result.hasBrandFlag = input.ReadUInt32(ref this.result.brandFlag_);
                        continue;
                    }

                    case 0x12:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            return(this);
                        }
                        this.ParseUnknownField(input, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasUserName = input.ReadString(ref this.result.userName_);
                }
                return(this);
            }
コード例 #22
0
ファイル: Host.cs プロジェクト: kxlcn/android-weixin
            public override Host.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(Host._hostFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = Host._hostFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 10:
                    {
                        this.result.hasOrigin = input.ReadString(ref this.result.origin_);
                        continue;
                    }

                    case 0x12:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            return(this);
                        }
                        this.ParseUnknownField(input, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasSubstitute = input.ReadString(ref this.result.substitute_);
                }
                return(this);
            }
コード例 #23
0
ファイル: DeleteBottle.cs プロジェクト: kxlcn/android-weixin
            public override DeleteBottle.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(DeleteBottle._deleteBottleFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = DeleteBottle._deleteBottleFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 10:
                    {
                        this.result.hasBottleId = input.ReadString(ref this.result.bottleId_);
                        continue;
                    }

                    case 0x10:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            return(this);
                        }
                        this.ParseUnknownField(input, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasThrowBackType = input.ReadInt32(ref this.result.throwBackType_);
                }
                return(this);
            }
コード例 #24
0
            public override SafeDeviceList.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(SafeDeviceList._safeDeviceListFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = SafeDeviceList._safeDeviceListFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 8:
                    {
                        this.result.hasCount = input.ReadUInt32(ref this.result.count_);
                        continue;
                    }

                    case 0x12:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            return(this);
                        }
                        this.ParseUnknownField(input, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    input.ReadMessageArray <SafeDevice>(num, str, this.result.list_, SafeDevice.DefaultInstance, extensionRegistry);
                }
                return(this);
            }
コード例 #25
0
            public override AdditionalContactList.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(AdditionalContactList._additionalContactListFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = AdditionalContactList._additionalContactListFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 10:
                    {
                        LinkedinContactItem.Builder builder = LinkedinContactItem.CreateBuilder();
                        if (this.result.hasLinkedinContactItem)
                        {
                            builder.MergeFrom(this.LinkedinContactItem);
                        }
                        input.ReadMessage(builder, extensionRegistry);
                        this.LinkedinContactItem = builder.BuildPartial();
                        continue;
                    }
                    }
                    if (WireFormat.IsEndGroupTag(num))
                    {
                        return(this);
                    }
                    this.ParseUnknownField(input, extensionRegistry, num, str);
                }
                return(this);
            }
コード例 #26
0
            internal void MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry, IBuilder builder)
            {
                uint   tag;
                string name;

                while (input.ReadTag(out tag, out name))
                {
                    if (tag == 0 && name != null)
                    {
                        FieldDescriptor fieldByName = builder.DescriptorForType.FindFieldByName(name);
                        if (fieldByName != null)
                        {
                            tag = WireFormat.MakeTag(fieldByName);
                        }
                        else
                        {
                            ExtensionInfo extension = extensionRegistry.FindByName(builder.DescriptorForType, name);
                            if (extension != null)
                            {
                                tag = WireFormat.MakeTag(extension.Descriptor);
                            }
                        }
                    }
                    if (tag == 0)
                    {
                        if (input.SkipField())
                        {
                            continue; //can't merge unknown without field tag
                        }
                        break;
                    }

                    if (!MergeFieldFrom(input, extensionRegistry, builder, tag, name))
                    {
                        // end group tag
                        break;
                    }
                }
            }
コード例 #27
0
            /// <summary>
            /// Parse an entire message from <paramref name="input"/> and merge
            /// its fields into this set.
            /// </summary>
            public Builder MergeFrom(ICodedInputStream input)
            {
                uint   tag;
                string name;

                while (input.ReadTag(out tag, out name))
                {
                    if (tag == 0)
                    {
                        if (input.SkipField())
                        {
                            continue; //can't merge unknown without field tag
                        }
                        break;
                    }

                    if (!MergeFieldFrom(tag, input))
                    {
                        break;
                    }
                }
                return(this);
            }
コード例 #28
0
ファイル: UnknownFieldSet.cs プロジェクト: radavies/protobuf
            internal void MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry, IBuilder builder)
            {
                uint tag;
                string name;
                while (input.ReadTag(out tag, out name))
                {
                    if (tag == 0 && name != null)
                    {
                        FieldDescriptor fieldByName = builder.DescriptorForType.FindFieldByName(name);
                        if (fieldByName != null)
                        {
                            tag = WireFormat.MakeTag(fieldByName);
                        }
                        else
                        {
                            ExtensionInfo extension = extensionRegistry.FindByName(builder.DescriptorForType, name);
                            if (extension != null)
                            {
                                tag = WireFormat.MakeTag(extension.Descriptor);
                            }
                        }
                    }
                    if (tag == 0)
                    {
                        if (input.SkipField())
                        {
                            continue; //can't merge unknown without field tag
                        }
                        break;
                    }

                    if (!MergeFieldFrom(input, extensionRegistry, builder, tag, name))
                    {
                        // end group tag
                        break;
                    }
                }
            }
コード例 #29
0
            public override SingleBatchItem.Builder MergeFrom(
                ICodedInputStream input,
                ExtensionRegistry extensionRegistry)
            {
                this.PrepareBuilder();
                UnknownFieldSet.Builder unknownFields = (UnknownFieldSet.Builder)null;
                uint   fieldTag;
                string fieldName;

                while (input.ReadTag(out fieldTag, out fieldName))
                {
                    if (fieldTag == 0U && fieldName != null)
                    {
                        int index = Array.BinarySearch <string>(SingleBatchItem._singleBatchItemFieldNames, fieldName, (IComparer <string>)StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            fieldTag = SingleBatchItem._singleBatchItemFieldTags[index];
                        }
                        else
                        {
                            if (unknownFields == null)
                            {
                                unknownFields = UnknownFieldSet.CreateBuilder(this.UnknownFields);
                            }
                            this.ParseUnknownField(input, unknownFields, extensionRegistry, fieldTag, fieldName);
                            continue;
                        }
                    }
                    switch (fieldTag)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 8:
                        this.result.hasSeqId = input.ReadInt32(ref this.result.seqId_);
                        continue;

                    case 18:
                        this.result.hasData = input.ReadString(ref this.result.data_);
                        continue;

                    default:
                        if (WireFormat.IsEndGroupTag(fieldTag))
                        {
                            if (unknownFields != null)
                            {
                                this.UnknownFields = unknownFields.Build();
                            }
                            return(this);
                        }
                        if (unknownFields == null)
                        {
                            unknownFields = UnknownFieldSet.CreateBuilder(this.UnknownFields);
                        }
                        this.ParseUnknownField(input, unknownFields, extensionRegistry, fieldTag, fieldName);
                        continue;
                    }
                }
                if (unknownFields != null)
                {
                    this.UnknownFields = unknownFields.Build();
                }
                return(this);
            }
コード例 #30
0
ファイル: Item.cs プロジェクト: salvadj1/RustSource
            public override Item.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                UnknownFieldSet.Builder builder = null;
                while (input.ReadTag(ref num, ref str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(Item._itemFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = Item._itemFieldTags[index];
                        }
                        else
                        {
                            if (builder == null)
                            {
                                builder = UnknownFieldSet.CreateBuilder(this.get_UnknownFields());
                            }
                            this.ParseUnknownField(input, builder, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 8:
                    {
                        this.result.hasId = input.ReadInt32(ref this.result.id_);
                        continue;
                    }

                    case 0x12:
                    {
                        this.result.hasName = input.ReadString(ref this.result.name_);
                        continue;
                    }

                    case 0x18:
                    {
                        this.result.hasSlot = input.ReadInt32(ref this.result.slot_);
                        continue;
                    }

                    case 0x20:
                    {
                        this.result.hasCount = input.ReadInt32(ref this.result.count_);
                        continue;
                    }

                    case 0x2a:
                    {
                        input.ReadMessageArray <Item>(num, str, this.result.subitem_, Item.DefaultInstance, extensionRegistry);
                        continue;
                    }

                    case 0x30:
                    {
                        this.result.hasSubslots = input.ReadInt32(ref this.result.subslots_);
                        continue;
                    }

                    case 0x3d:
                    {
                        this.result.hasCondition = input.ReadFloat(ref this.result.condition_);
                        continue;
                    }

                    case 0x45:
                        break;

                    default:
                    {
                        if (WireFormat.IsEndGroupTag(num))
                        {
                            if (builder != null)
                            {
                                this.set_UnknownFields(builder.Build());
                            }
                            return(this);
                        }
                        if (builder == null)
                        {
                            builder = UnknownFieldSet.CreateBuilder(this.get_UnknownFields());
                        }
                        this.ParseUnknownField(input, builder, extensionRegistry, num, str);
                        continue;
                    }
                    }
                    this.result.hasMaxcondition = input.ReadFloat(ref this.result.maxcondition_);
                }
                if (builder != null)
                {
                    this.set_UnknownFields(builder.Build());
                }
                return(this);
            }
コード例 #31
0
            public override WXMessageP.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(WXMessageP._wXMessagePFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = WXMessageP._wXMessagePFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0x1a:
                    {
                        this.result.hasDescription = input.ReadString(ref this.result.description_);
                        continue;
                    }

                    case 0x22:
                    {
                        this.result.hasThumbData = input.ReadBytes(ref this.result.thumbData_);
                        continue;
                    }

                    case 0x2a:
                    {
                        WXEmojiMessageP.Builder builder = WXEmojiMessageP.CreateBuilder();
                        if (this.result.hasEmojiMessage)
                        {
                            builder.MergeFrom(this.EmojiMessage);
                        }
                        input.ReadMessage(builder, extensionRegistry);
                        this.EmojiMessage = builder.BuildPartial();
                        continue;
                    }

                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 8:
                    {
                        this.result.hasType = input.ReadUInt32(ref this.result.type_);
                        continue;
                    }

                    case 0x12:
                    {
                        this.result.hasTitle = input.ReadString(ref this.result.title_);
                        continue;
                    }

                    case 50:
                    {
                        WXFileMessageP.Builder builder2 = WXFileMessageP.CreateBuilder();
                        if (this.result.hasFileMessage)
                        {
                            builder2.MergeFrom(this.FileMessage);
                        }
                        input.ReadMessage(builder2, extensionRegistry);
                        this.FileMessage = builder2.BuildPartial();
                        continue;
                    }

                    case 0x3a:
                    {
                        WXImageMessageP.Builder builder3 = WXImageMessageP.CreateBuilder();
                        if (this.result.hasImageMessage)
                        {
                            builder3.MergeFrom(this.ImageMessage);
                        }
                        input.ReadMessage(builder3, extensionRegistry);
                        this.ImageMessage = builder3.BuildPartial();
                        continue;
                    }

                    case 0x42:
                    {
                        WXMusicMessageP.Builder builder4 = WXMusicMessageP.CreateBuilder();
                        if (this.result.hasMusicMessage)
                        {
                            builder4.MergeFrom(this.MusicMessage);
                        }
                        input.ReadMessage(builder4, extensionRegistry);
                        this.MusicMessage = builder4.BuildPartial();
                        continue;
                    }

                    case 0x4a:
                    {
                        WXTextMessageP.Builder builder5 = WXTextMessageP.CreateBuilder();
                        if (this.result.hasTextMessage)
                        {
                            builder5.MergeFrom(this.TextMessage);
                        }
                        input.ReadMessage(builder5, extensionRegistry);
                        this.TextMessage = builder5.BuildPartial();
                        continue;
                    }

                    case 0x52:
                    {
                        WXVideoMessageP.Builder builder6 = WXVideoMessageP.CreateBuilder();
                        if (this.result.hasVideoMessage)
                        {
                            builder6.MergeFrom(this.VideoMessage);
                        }
                        input.ReadMessage(builder6, extensionRegistry);
                        this.VideoMessage = builder6.BuildPartial();
                        continue;
                    }

                    case 90:
                    {
                        WXWebpageMessageP.Builder builder7 = WXWebpageMessageP.CreateBuilder();
                        if (this.result.hasWebpageMessage)
                        {
                            builder7.MergeFrom(this.WebpageMessage);
                        }
                        input.ReadMessage(builder7, extensionRegistry);
                        this.WebpageMessage = builder7.BuildPartial();
                        continue;
                    }

                    case 0x62:
                    {
                        WXAppExtendMessageP.Builder builder8 = WXAppExtendMessageP.CreateBuilder();
                        if (this.result.hasAppExtendMessage)
                        {
                            builder8.MergeFrom(this.AppExtendMessage);
                        }
                        input.ReadMessage(builder8, extensionRegistry);
                        this.AppExtendMessage = builder8.BuildPartial();
                        continue;
                    }
                    }
                    if (WireFormat.IsEndGroupTag(num))
                    {
                        return(this);
                    }
                    this.ParseUnknownField(input, extensionRegistry, num, str);
                }
                return(this);
            }
コード例 #32
0
ファイル: UnknownFieldSet.cs プロジェクト: radavies/protobuf
            /// <summary>
            /// Parse an entire message from <paramref name="input"/> and merge
            /// its fields into this set.
            /// </summary>
            public Builder MergeFrom(ICodedInputStream input)
            {
                uint tag;
                string name;
                while (input.ReadTag(out tag, out name))
                {
                    if (tag == 0)
                    {
                        if (input.SkipField())
                        {
                            continue; //can't merge unknown without field tag
                        }
                        break;
                    }

                    if (!MergeFieldFrom(tag, input))
                    {
                        break;
                    }
                }
                return this;
            }
コード例 #33
0
ファイル: UnknownFieldSet.cs プロジェクト: radavies/protobuf
            /// <summary>
            /// Called by MergeFieldFrom to parse a MessageSet extension.
            /// </summary>
            private void MergeMessageSetExtensionFromCodedStream(ICodedInputStream input,
                                                                 ExtensionRegistry extensionRegistry, IBuilder builder)
            {
                MessageDescriptor type = builder.DescriptorForType;

                // The wire format for MessageSet is:
                //   message MessageSet {
                //     repeated group Item = 1 {
                //       required int32 typeId = 2;
                //       required bytes message = 3;
                //     }
                //   }
                // "typeId" is the extension's field number.  The extension can only be
                // a message type, where "message" contains the encoded bytes of that
                // message.
                //
                // In practice, we will probably never see a MessageSet item in which
                // the message appears before the type ID, or where either field does not
                // appear exactly once.  However, in theory such cases are valid, so we
                // should be prepared to accept them.

                int typeId = 0;
                ByteString rawBytes = null; // If we encounter "message" before "typeId"
                IBuilderLite subBuilder = null;
                FieldDescriptor field = null;

                uint lastTag = WireFormat.MessageSetTag.ItemStart;
                uint tag;
                string name;
                while (input.ReadTag(out tag, out name))
                {
                    if (tag == 0 && name != null)
                    {
                        if (name == "type_id")
                        {
                            tag = WireFormat.MessageSetTag.TypeID;
                        }
                        else if (name == "message")
                        {
                            tag = WireFormat.MessageSetTag.Message;
                        }
                    }
                    if (tag == 0)
                    {
                        if (input.SkipField())
                        {
                            continue; //can't merge unknown without field tag
                        }
                        break;
                    }

                    lastTag = tag;
                    if (tag == WireFormat.MessageSetTag.TypeID)
                    {
                        typeId = 0;
                        // Zero is not a valid type ID.
                        if (input.ReadInt32(ref typeId) && typeId != 0)
                        {
                            ExtensionInfo extension = extensionRegistry[type, typeId];
                            if (extension != null)
                            {
                                field = extension.Descriptor;
                                subBuilder = extension.DefaultInstance.WeakCreateBuilderForType();
                                IMessageLite originalMessage = (IMessageLite) builder[field];
                                if (originalMessage != null)
                                {
                                    subBuilder.WeakMergeFrom(originalMessage);
                                }
                                if (rawBytes != null)
                                {
                                    // We already encountered the message.  Parse it now.
                                    // TODO(jonskeet): Check this is okay. It's subtly different from the Java, as it doesn't create an input stream from rawBytes.
                                    // In fact, why don't we just call MergeFrom(rawBytes)? And what about the extension registry?
                                    subBuilder.WeakMergeFrom(rawBytes.CreateCodedInput());
                                    rawBytes = null;
                                }
                            }
                            else
                            {
                                // Unknown extension number.  If we already saw data, put it
                                // in rawBytes.
                                if (rawBytes != null)
                                {
                                    MergeField(typeId, UnknownField.CreateBuilder().AddLengthDelimited(rawBytes).Build());
                                    rawBytes = null;
                                }
                            }
                        }
                    }
                    else if (tag == WireFormat.MessageSetTag.Message)
                    {
                        if (subBuilder != null)
                        {
                            // We already know the type, so we can parse directly from the input
                            // with no copying.  Hooray!
                            input.ReadMessage(subBuilder, extensionRegistry);
                        }
                        else if (input.ReadBytes(ref rawBytes))
                        {
                            if (typeId != 0)
                            {
                                // We don't know how to parse this.  Ignore it.
                                MergeField(typeId,
                                           UnknownField.CreateBuilder().AddLengthDelimited(rawBytes).Build());
                            }
                        }
                    }
                    else
                    {
                        // Unknown tag.  Skip it.
                        if (!input.SkipField())
                        {
                            break; // end of group
                        }
                    }
                }

                if (lastTag != WireFormat.MessageSetTag.ItemEnd)
                {
                    throw InvalidProtocolBufferException.InvalidEndTag();
                }

                if (subBuilder != null)
                {
                    builder[field] = subBuilder.WeakBuild();
                }
            }