예제 #1
0
 static CommunicationReflection()
 {
     byte[] descriptorData = System.Convert.FromBase64String(
         string.Concat(
             "ChNjb21tdW5pY2F0aW9uLnByb3RvEg1Db21tdW5pY2F0aW9uGh9nb29nbGUv",
             "cHJvdG9idWYvdGltZXN0YW1wLnByb3RvIvcBCg5SZXF1ZXN0TWVzc2FnZRIQ",
             "CghjbGllbnRJZBgBIAEoCRIRCgltZXNzYWdlSWQYAiABKAkSKAoEdHlwZRgD",
             "IAEoDjIaLkNvbW11bmljYXRpb24uTWVzc2FnZVR5cGUSKAoEdGltZRgEIAEo",
             "CzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoGc3RhdHVzGAUgASgO",
             "MhwuQ29tbXVuaWNhdGlvbi5NZXNzYWdlU3RhdHVzEg8KB3BheWxvYWQYBiAB",
             "KAwSLQoIcmVzcG9uc2UYByABKA4yGy5Db21tdW5pY2F0aW9uLlJlc3BvbnNl",
             "VHlwZSLJAQoPUmVzcG9uc2VNZXNzYWdlEhAKCGNsaWVudElkGAEgASgJEhEK",
             "CW1lc3NhZ2VJZBgCIAEoCRIoCgR0eXBlGAMgASgOMhouQ29tbXVuaWNhdGlv",
             "bi5NZXNzYWdlVHlwZRIoCgR0aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVm",
             "LlRpbWVzdGFtcBIsCgZzdGF0dXMYBSABKA4yHC5Db21tdW5pY2F0aW9uLk1l",
             "c3NhZ2VTdGF0dXMSDwoHcGF5bG9hZBgGIAEoDCpdCgtNZXNzYWdlVHlwZRIZ",
             "ChVNRVNTQUdFVFlQRV9VTkRFRklORUQQABIYChRNRVNTQUdFVFlQRV9PUkRJ",
             "TkFSWRABEhkKFU1FU1NBR0VUWVBFX0lNUE9SVEFOVBACKrEBCg1NZXNzYWdl",
             "U3RhdHVzEhsKF01FU1NBR0VTVEFUVVNfVU5ERUZJTkVEEAASGQoVTUVTU0FH",
             "RVNUQVRVU19DUkVBVEVEEAESFgoSTUVTU0FHRVNUQVRVU19TRU5UEAISGgoW",
             "TUVTU0FHRVNUQVRVU19SRUNFSVZFRBADEhsKF01FU1NBR0VTVEFUVVNfUFJP",
             "Q0VTU0VEEAQSFwoTTUVTU0FHRVNUQVRVU19FUlJPUhAFKmQKDFJlc3BvbnNl",
             "VHlwZRIaChZSRVNQT05TRVRZUEVfVU5ERUZJTkVEEAASGQoVUkVTUE9OU0VU",
             "WVBFX1JFUVVJUkVEEAESHQoZUkVTUE9OU0VUWVBFX05PVF9SRVFVSVJFRBAC",
             "MmEKCU1lc3NhZ2luZxJUCg9DcmVhdGVTdHJlYW1pbmcSHS5Db21tdW5pY2F0",
             "aW9uLlJlcXVlc3RNZXNzYWdlGh4uQ29tbXVuaWNhdGlvbi5SZXNwb25zZU1l",
             "c3NhZ2UoATABYgZwcm90bzM="));
     descriptor = pbr.FileDescriptor.FromGeneratedCode(descriptorData,
                                                       new pbr.FileDescriptor[] { Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, },
                                                       new pbr.GeneratedClrTypeInfo(new[] { typeof(MessageType), typeof(MessageStatus), typeof(ResponseType), }, null, new pbr.GeneratedClrTypeInfo[] {
         new pbr.GeneratedClrTypeInfo(typeof(RequestMessage), RequestMessage.Parser, new[] { "ClientId", "MessageId", "Type", "Time", "Status", "Payload", "Response" }, null, null, null, null),
         new pbr.GeneratedClrTypeInfo(typeof(ResponseMessage), ResponseMessage.Parser, new[] { "ClientId", "MessageId", "Type", "Time", "Status", "Payload" }, null, null, null, null)
     }));
 }
        public MessageDescriptor(DescriptorProto proto, FileDescriptor file, MessageDescriptor parent, int typeIndex, GeneratedClrTypeInfo generatedCodeInfo)
            : base(file, file.ComputeFullName(parent, proto.Name), typeIndex)
        {
            Proto          = proto;
            Parser         = generatedCodeInfo?.Parser;
            ClrType        = generatedCodeInfo?.ClrType;
            ContainingType = parent;

            // Note use of generatedCodeInfo. rather than generatedCodeInfo?. here... we don't expect
            // to see any nested oneofs, types or enums in "not actually generated" code... we do
            // expect fields though (for map entry messages).
            Oneofs = DescriptorUtil.ConvertAndMakeReadOnly(
                proto.OneofDecl,
                (oneof, index) =>
                new OneofDescriptor(oneof, file, this, index, generatedCodeInfo.OneofNames[index]));

            NestedTypes = DescriptorUtil.ConvertAndMakeReadOnly(
                proto.NestedType,
                (type, index) =>
                new MessageDescriptor(type, file, this, index, generatedCodeInfo.NestedTypes[index]));

            EnumTypes = DescriptorUtil.ConvertAndMakeReadOnly(
                proto.EnumType,
                (type, index) =>
                new EnumDescriptor(type, file, this, index, generatedCodeInfo.NestedEnums[index]));

            fieldsInDeclarationOrder = DescriptorUtil.ConvertAndMakeReadOnly(
                proto.Field,
                (field, index) =>
                new FieldDescriptor(field, file, this, index, generatedCodeInfo?.PropertyNames[index]));
            fieldsInNumberOrder = new ReadOnlyCollection <FieldDescriptor>(fieldsInDeclarationOrder.OrderBy(field => field.FieldNumber).ToArray());
            // TODO: Use field => field.Proto.JsonName when we're confident it's appropriate. (And then use it in the formatter, too.)
            jsonFieldMap = CreateJsonFieldMap(fieldsInNumberOrder);
            file.DescriptorPool.AddSymbol(this);
            Fields = new FieldCollection(this);
        }
예제 #3
0
        private void TestFileDescriptor(FileDescriptor file, FileDescriptor importedFile, FileDescriptor importedPublicFile)
        {
            Assert.AreEqual("unittest_proto3.proto", file.Name);
            Assert.AreEqual("protobuf_unittest3", file.Package);

            Assert.AreEqual("UnittestProto", file.Proto.Options.JavaOuterClassname);
            Assert.AreEqual("unittest_proto3.proto", file.Proto.Name);

            // unittest_proto3.proto doesn't have any public imports, but unittest_import_proto3.proto does.
            Assert.AreEqual(0, file.PublicDependencies.Count);
            Assert.AreEqual(1, importedFile.PublicDependencies.Count);
            Assert.AreEqual(importedPublicFile, importedFile.PublicDependencies[0]);

            Assert.AreEqual(1, file.Dependencies.Count);
            Assert.AreEqual(importedFile, file.Dependencies[0]);

            Assert.Null(file.FindTypeByName <MessageDescriptor>("NoSuchType"));
            Assert.Null(file.FindTypeByName <MessageDescriptor>("protobuf_unittest3.TestAllTypes"));
            for (int i = 0; i < file.MessageTypes.Count; i++)
            {
                Assert.AreEqual(i, file.MessageTypes[i].Index);
            }

            Assert.AreEqual(file.EnumTypes[0], file.FindTypeByName <EnumDescriptor>("ForeignEnum"));
            Assert.Null(file.FindTypeByName <EnumDescriptor>("NoSuchType"));
            Assert.Null(file.FindTypeByName <EnumDescriptor>("protobuf_unittest3.ForeignEnum"));
            Assert.AreEqual(1, importedFile.EnumTypes.Count);
            Assert.AreEqual("ImportEnum", importedFile.EnumTypes[0].Name);
            for (int i = 0; i < file.EnumTypes.Count; i++)
            {
                Assert.AreEqual(i, file.EnumTypes[i].Index);
            }

            Assert.AreEqual(10, file.SerializedData[0]);
            TestDescriptorToProto(file.ToProto, file.Proto);
        }
예제 #4
0
        internal MessageDescriptor(DescriptorProto proto, FileDescriptor file, MessageDescriptor parent, int typeIndex, GeneratedClrTypeInfo generatedCodeInfo)
            : base(file, file.ComputeFullName(parent, proto.Name), typeIndex)
        {
            Proto          = proto;
            Parser         = generatedCodeInfo?.Parser;
            ClrType        = generatedCodeInfo?.ClrType;
            ContainingType = parent;

            // If generatedCodeInfo is null, we just won't generate an accessor for any fields.
            Oneofs = DescriptorUtil.ConvertAndMakeReadOnly(
                proto.OneofDecl,
                (oneof, index) =>
                new OneofDescriptor(oneof, file, this, index, generatedCodeInfo?.OneofNames[index]));

            NestedTypes = DescriptorUtil.ConvertAndMakeReadOnly(
                proto.NestedType,
                (type, index) =>
                new MessageDescriptor(type, file, this, index, generatedCodeInfo?.NestedTypes[index]));

            EnumTypes = DescriptorUtil.ConvertAndMakeReadOnly(
                proto.EnumType,
                (type, index) =>
                new EnumDescriptor(type, file, this, index, generatedCodeInfo?.NestedEnums[index]));

            Extensions = new ExtensionCollection(this, generatedCodeInfo?.Extensions);

            fieldsInDeclarationOrder = DescriptorUtil.ConvertAndMakeReadOnly(
                proto.Field,
                (field, index) =>
                new FieldDescriptor(field, file, this, index, generatedCodeInfo?.PropertyNames[index], null));
            fieldsInNumberOrder = new ReadOnlyCollection <FieldDescriptor>(fieldsInDeclarationOrder.OrderBy(field => field.FieldNumber).ToArray());
            // TODO: Use field => field.Proto.JsonName when we're confident it's appropriate. (And then use it in the formatter, too.)
            jsonFieldMap = CreateJsonFieldMap(fieldsInNumberOrder);
            file.DescriptorPool.AddSymbol(this);
            Fields = new FieldCollection(this);
        }
예제 #5
0
        /// <summary>
        /// Converts the given descriptor binary data into FileDescriptor objects.
        /// Note: reflection using the returned FileDescriptors is not currently supported.
        /// </summary>
        /// <param name="descriptorData">The binary file descriptor proto data. Must not be null, and any
        /// dependencies must come before the descriptor which depends on them. (If A depends on B, and B
        /// depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
        /// with the order in which protoc provides descriptors to plugins.</param>
        /// <returns>The file descriptors corresponding to <paramref name="descriptorData"/>.</returns>
        public static IReadOnlyList <FileDescriptor> BuildFromByteStrings(IEnumerable <ByteString> descriptorData)
        {
            ProtoPreconditions.CheckNotNull(descriptorData, nameof(descriptorData));

            // TODO: See if we can build a single DescriptorPool instead of building lots of them.
            // This will all behave correctly, but it's less efficient than we'd like.
            var descriptors       = new List <FileDescriptor>();
            var descriptorsByName = new Dictionary <string, FileDescriptor>();

            foreach (var data in descriptorData)
            {
                var proto        = FileDescriptorProto.Parser.ParseFrom(data);
                var dependencies = new List <FileDescriptor>();
                foreach (var dependencyName in proto.Dependency)
                {
                    FileDescriptor dependency;
                    if (!descriptorsByName.TryGetValue(dependencyName, out dependency))
                    {
                        throw new ArgumentException($"Dependency missing: {dependencyName}");
                    }
                    dependencies.Add(dependency);
                }
                var            pool       = new DescriptorPool(dependencies);
                FileDescriptor descriptor = new FileDescriptor(
                    data, proto, dependencies, pool,
                    allowUnknownDependencies: false, generatedCodeInfo: null);
                descriptor.CrossLink();
                descriptors.Add(descriptor);
                if (descriptorsByName.ContainsKey(descriptor.Name))
                {
                    throw new ArgumentException($"Duplicate descriptor name: {descriptor.Name}");
                }
                descriptorsByName.Add(descriptor.Name, descriptor);
            }
            return(new ReadOnlyCollection <FileDescriptor>(descriptors));
        }
예제 #6
0
        private static FileDescriptor BuildFrom(ByteString descriptorData, FileDescriptorProto proto, FileDescriptor[] dependencies, bool allowUnknownDependencies, GeneratedCodeInfo generatedCodeInfo)
        {
            if (dependencies == null)
            {
                goto IL_18;
            }
            goto IL_122;
            uint           arg_D3_0;
            FileDescriptor fileDescriptor;
            int            num2;

            while (true)
            {
IL_CE:
                uint num;
                switch ((num = (arg_D3_0 ^ 4161713641u)) % 12u)
                {
                case 0u:
                    fileDescriptor.CrossLink();
                    arg_D3_0 = (num * 1953233347u ^ 2707760628u);
                    continue;

                case 1u:
                    num2     = 0;
                    arg_D3_0 = 2574715432u;
                    continue;

                case 2u:
                    num2++;
                    arg_D3_0 = 4243801185u;
                    continue;

                case 3u:
                    dependencies = new FileDescriptor[0];
                    arg_D3_0     = (num * 3942966366u ^ 4286440245u);
                    continue;

                case 4u:
                    arg_D3_0 = ((num2 < proto.Dependency.Count) ? 2982469083u : 3757505837u);
                    continue;

                case 5u:
                    arg_D3_0 = (num * 314203903u ^ 1276877662u);
                    continue;

                case 6u:
                    arg_D3_0 = ((!FileDescriptor.smethod_5(dependencies[num2].Name, proto.Dependency[num2])) ? 3773742995u : 2893382989u);
                    continue;

                case 7u:
                    goto IL_18;

                case 8u:
                    goto IL_14B;

                case 10u:
                    goto IL_122;

                case 11u:
                    goto IL_183;
                }
                break;
            }
            return(fileDescriptor);

IL_14B:
            throw new DescriptorValidationException(fileDescriptor, FileDescriptor.smethod_6(Module.smethod_37 <string>(2509052754u), proto.Dependency[num2], Module.smethod_35 <string>(3048061080u), dependencies[num2].Name));
IL_183:
            throw new DescriptorValidationException(fileDescriptor, Module.smethod_33 <string>(2639691648u));
IL_18:
            arg_D3_0 = 3320637418u;
            goto IL_CE;
IL_122:
            DescriptorPool pool = new DescriptorPool(dependencies);

            fileDescriptor = new FileDescriptor(descriptorData, proto, dependencies, pool, allowUnknownDependencies, generatedCodeInfo);
            arg_D3_0       = ((dependencies.Length != proto.Dependency.Count) ? 2984046962u : 2591580144u);
            goto IL_CE;
        }
예제 #7
0
        public T FindTypeByName <T>(string name) where T : class, IDescriptor
        {
            if (FileDescriptor.smethod_4(name, '.') != -1)
            {
                goto IL_49;
            }
            goto IL_FD;
            uint arg_BD_0;

            while (true)
            {
IL_B8:
                uint num;
                switch ((num = (arg_BD_0 ^ 464370408u)) % 9u)
                {
                case 0u:
                {
                    T t;
                    arg_BD_0 = (((t.File == this) ? 192187766u : 338264466u) ^ num * 343090665u);
                    continue;
                }

                case 2u:
                    name     = FileDescriptor.smethod_1(this.Package, Module.smethod_36 <string>(1323488018u), name);
                    arg_BD_0 = (num * 3152909545u ^ 3774283465u);
                    continue;

                case 3u:
                {
                    T t = this.DescriptorPool.FindSymbol <T>(name);
                    arg_BD_0 = 1469809664u;
                    continue;
                }

                case 4u:
                    goto IL_FD;

                case 5u:
                    goto IL_49;

                case 6u:
                {
                    T t;
                    return(t);
                }

                case 7u:
                {
                    T t;
                    arg_BD_0 = (((t != null) ? 484983571u : 1629139297u) ^ num * 2175120638u);
                    continue;
                }

                case 8u:
                    goto IL_11C;
                }
                break;
            }
            return(default(T));

IL_11C:
            return(default(T));

IL_49:
            arg_BD_0 = 1699441690u;
            goto IL_B8;
IL_FD:
            arg_BD_0 = ((FileDescriptor.smethod_2(this.Package) <= 0) ? 1039614224u : 1192626073u);
            goto IL_B8;
        }
예제 #8
0
        private static IList <FileDescriptor> DeterminePublicDependencies(FileDescriptor @this, FileDescriptorProto proto, FileDescriptor[] dependencies, bool allowUnknownDependencies)
        {
            Dictionary <string, FileDescriptor> dictionary = new Dictionary <string, FileDescriptor>();
            List <FileDescriptor> list;
            string text;

            while (true)
            {
IL_25F:
                uint arg_1FD_0 = 1480753851u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_1FD_0 ^ 354656998u)) % 21u)
                    {
                    case 0u:
                    {
                        int num2;
                        arg_1FD_0 = ((num2 < dependencies.Length) ? 755598000u : 1625878074u);
                        continue;
                    }

                    case 1u:
                    {
                        FileDescriptor fileDescriptor;
                        arg_1FD_0 = (((fileDescriptor != null) ? 3503588187u : 2689291383u) ^ num * 269180022u);
                        continue;
                    }

                    case 2u:
                        arg_1FD_0 = (num * 1428810503u ^ 597188103u);
                        continue;

                    case 3u:
                    {
                        int num2;
                        num2++;
                        arg_1FD_0 = (num * 4026010881u ^ 1873699178u);
                        continue;
                    }

                    case 4u:
                    {
                        list = new List <FileDescriptor>();
                        int num3 = 0;
                        arg_1FD_0 = (num * 172851441u ^ 2057392629u);
                        continue;
                    }

                    case 5u:
                    {
                        int num4;
                        text      = proto.Dependency[num4];
                        arg_1FD_0 = 1182864162u;
                        continue;
                    }

                    case 6u:
                    {
                        int num4;
                        arg_1FD_0 = (((num4 < proto.Dependency.Count) ? 199583157u : 1553389033u) ^ num * 904630291u);
                        continue;
                    }

                    case 7u:
                    {
                        int num2 = 0;
                        arg_1FD_0 = (num * 2059016605u ^ 2886768975u);
                        continue;
                    }

                    case 8u:
                    {
                        FileDescriptor fileDescriptor2;
                        dictionary[fileDescriptor2.Name] = fileDescriptor2;
                        arg_1FD_0 = (num * 2415469140u ^ 158078469u);
                        continue;
                    }

                    case 9u:
                    {
                        FileDescriptor fileDescriptor = dictionary[text];
                        arg_1FD_0 = (num * 1703034579u ^ 4134718755u);
                        continue;
                    }

                    case 10u:
                    {
                        int num3;
                        num3++;
                        arg_1FD_0 = 1400639947u;
                        continue;
                    }

                    case 11u:
                        goto IL_266;

                    case 13u:
                        goto IL_277;

                    case 14u:
                    {
                        int num3;
                        int num4 = proto.PublicDependency[num3];
                        arg_1FD_0 = ((num4 < 0) ? 43381538u : 749549455u);
                        continue;
                    }

                    case 15u:
                        arg_1FD_0 = (num * 1315834947u ^ 1640480294u);
                        continue;

                    case 16u:
                        arg_1FD_0 = (((!allowUnknownDependencies) ? 1742178966u : 1225729944u) ^ num * 865084290u);
                        continue;

                    case 17u:
                    {
                        FileDescriptor fileDescriptor;
                        list.Add(fileDescriptor);
                        arg_1FD_0 = 83744118u;
                        continue;
                    }

                    case 18u:
                    {
                        int            num2;
                        FileDescriptor fileDescriptor2 = dependencies[num2];
                        arg_1FD_0 = 266579083u;
                        continue;
                    }

                    case 19u:
                        goto IL_25F;

                    case 20u:
                    {
                        int num3;
                        arg_1FD_0 = ((num3 < proto.PublicDependency.Count) ? 1502489908u : 1152782524u);
                        continue;
                    }
                    }
                    goto Block_7;
                }
            }
Block_7:
            goto IL_28F;
IL_266:
            throw new DescriptorValidationException(@this, Module.smethod_34 <string>(2614455357u));
IL_277:
            throw new DescriptorValidationException(@this, FileDescriptor.smethod_3(Module.smethod_35 <string>(82095339u), text));
IL_28F:
            return(new ReadOnlyCollection <FileDescriptor>(list));
        }
예제 #9
0
        private FileDescriptor(ByteString descriptorData, FileDescriptorProto proto, FileDescriptor[] dependencies, DescriptorPool pool, bool allowUnknownDependencies, GeneratedCodeInfo generatedCodeInfo)
        {
            FileDescriptor __4__this;

            while (true)
            {
IL_113:
                uint arg_E7_0 = 3109136426u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_E7_0 ^ 2557234891u)) % 8u)
                    {
                    case 0u:
                        pool.AddPackage(this.Package, this);
                        arg_E7_0 = (num * 1105332455u ^ 1354664894u);
                        continue;

                    case 1u:
                        __4__this = this;
                        arg_E7_0  = (num * 4125576103u ^ 2241118048u);
                        continue;

                    case 2u:
                        this.< Dependencies > k__BackingField       = new ReadOnlyCollection <FileDescriptor>((FileDescriptor[])FileDescriptor.smethod_0(dependencies));
                        this.< PublicDependencies > k__BackingField = FileDescriptor.DeterminePublicDependencies(this, proto, dependencies, allowUnknownDependencies);
                        arg_E7_0 = (num * 2070285500u ^ 1583842795u);
                        continue;

                    case 3u:
                        goto IL_113;

                    case 4u:
                        this.< SerializedData > k__BackingField = descriptorData;
                        arg_E7_0 = (num * 559784837u ^ 3768172688u);
                        continue;

                    case 5u:
                        this.< MessageTypes > k__BackingField = DescriptorUtil.ConvertAndMakeReadOnly <DescriptorProto, MessageDescriptor>(proto.MessageType, (DescriptorProto message, int index) => new MessageDescriptor(message, __4__this, null, index, generatedCodeInfo.NestedTypes[index]));
                        arg_E7_0 = (num * 3261531694u ^ 3702070131u);
                        continue;

                    case 7u:
                        this.< DescriptorPool > k__BackingField = pool;
                        this.< Proto > k__BackingField          = proto;
                        arg_E7_0 = (num * 2550378934u ^ 3723757811u);
                        continue;
                    }
                    goto Block_1;
                }
            }
Block_1:
            this.< EnumTypes > k__BackingField = DescriptorUtil.ConvertAndMakeReadOnly <EnumDescriptorProto, EnumDescriptor>(proto.EnumType, (EnumDescriptorProto enumType, int index) => new EnumDescriptor(enumType, __4__this, null, index, generatedCodeInfo.NestedEnums[index]));
            this.< Services > k__BackingField  = DescriptorUtil.ConvertAndMakeReadOnly <ServiceDescriptorProto, ServiceDescriptor>(proto.Service, (ServiceDescriptorProto service, int index) => new ServiceDescriptor(service, this, index));
        }
예제 #10
0
 static DescriptorReflection()
 {
     DescriptorReflection.descriptor = FileDescriptor.FromGeneratedCode(DescriptorReflection.smethod_1(DescriptorReflection.smethod_0(new string[]
     {
         Module.smethod_36 <string>(1133750113u),
         Module.smethod_36 <string>(3865843889u),
         Module.smethod_33 <string>(4011389919u),
         Module.smethod_37 <string>(147719445u),
         Module.smethod_35 <string>(2144082553u),
         Module.smethod_37 <string>(1345641909u),
         Module.smethod_35 <string>(3459124441u),
         Module.smethod_33 <string>(551634098u),
         Module.smethod_36 <string>(1515663841u),
         Module.smethod_34 <string>(3053824082u),
         Module.smethod_33 <string>(3108195874u),
         Module.smethod_34 <string>(2303931186u),
         Module.smethod_36 <string>(4236018081u),
         Module.smethod_34 <string>(2135232157u),
         Module.smethod_33 <string>(1556921151u),
         Module.smethod_36 <string>(928319522u),
         Module.smethod_35 <string>(4052590466u),
         Module.smethod_35 <string>(3395069522u),
         Module.smethod_36 <string>(916579986u),
         Module.smethod_33 <string>(1659014159u),
         Module.smethod_33 <string>(738764895u),
         Module.smethod_37 <string>(347216190u),
         Module.smethod_36 <string>(2873106770u),
         Module.smethod_33 <string>(22701647u),
         Module.smethod_34 <string>(1555895629u),
         Module.smethod_37 <string>(2743061118u),
         Module.smethod_36 <string>(1298493714u),
         Module.smethod_33 <string>(2681356431u),
         Module.smethod_33 <string>(1761107167u),
         Module.smethod_34 <string>(431056285u),
         Module.smethod_37 <string>(1486783918u),
         Module.smethod_33 <string>(1045043919u),
         Module.smethod_35 <string>(2122189954u),
         Module.smethod_36 <string>(2861367234u),
         Module.smethod_33 <string>(1965293183u),
         Module.smethod_36 <string>(117533922u),
         Module.smethod_37 <string>(4087106190u),
         Module.smethod_36 <string>(1286754178u),
         Module.smethod_36 <string>(3636934226u),
         Module.smethod_36 <string>(2074060706u),
         Module.smethod_36 <string>(511187186u),
         Module.smethod_35 <string>(499468754u),
         Module.smethod_37 <string>(4058164590u),
         Module.smethod_36 <string>(3554757474u),
         Module.smethod_35 <string>(3690205762u),
         Module.smethod_33 <string>(838033519u),
         Module.smethod_33 <string>(940126527u),
         Module.smethod_33 <string>(2678532047u),
         Module.smethod_35 <string>(1060121986u),
         Module.smethod_35 <string>(402601042u),
         Module.smethod_35 <string>(1409963618u),
         Module.smethod_33 <string>(1042219535u),
         Module.smethod_35 <string>(2725005506u),
         Module.smethod_35 <string>(2067484562u),
         Module.smethod_37 <string>(1662319662u),
         Module.smethod_33 <string>(3700874319u),
         Module.smethod_37 <string>(2860242126u),
         Module.smethod_37 <string>(113797246u),
         Module.smethod_33 <string>(326156287u),
         Module.smethod_34 <string>(294333629u),
         Module.smethod_36 <string>(2755711410u),
         Module.smethod_33 <string>(2882718063u),
         Module.smethod_35 <string>(2109646882u),
         Module.smethod_37 <string>(406042462u),
         Module.smethod_36 <string>(417270898u),
         Module.smethod_34 <string>(2339622237u),
         Module.smethod_35 <string>(3774530402u),
         Module.smethod_33 <string>(3086904079u),
         Module.smethod_37 <string>(1457842318u),
         Module.smethod_37 <string>(3006364734u),
         Module.smethod_35 <string>(1144446626u),
         Module.smethod_35 <string>(486925682u),
         Module.smethod_33 <string>(530342303u),
         Module.smethod_36 <string>(3531278402u),
         Module.smethod_37 <string>(2071274350u),
         Module.smethod_37 <string>(3619796766u),
         Module.smethod_36 <string>(464229042u),
         Module.smethod_35 <string>(2598518546u),
         Module.smethod_34 <string>(3532129005u),
         Module.smethod_34 <string>(3907075453u),
         Module.smethod_36 <string>(2420755826u),
         Module.smethod_35 <string>(4263402066u),
         Module.smethod_37 <string>(1574551790u),
         Module.smethod_34 <string>(2407289661u),
         Module.smethod_36 <string>(846142770u),
         Module.smethod_36 <string>(3578236546u),
         Module.smethod_34 <string>(532557421u),
         Module.smethod_34 <string>(907503869u),
         Module.smethod_36 <string>(2802669554u),
         Module.smethod_37 <string>(2421874302u),
         Module.smethod_36 <string>(58836242u),
         Module.smethod_36 <string>(2790930018u),
         Module.smethod_34 <string>(2577846029u),
         Module.smethod_37 <string>(1516197054u),
         Module.smethod_35 <string>(1675480610u),
         Module.smethod_37 <string>(2714119518u),
         Module.smethod_37 <string>(2363519566u),
         Module.smethod_35 <string>(2333001554u),
         Module.smethod_35 <string>(3340364130u),
         Module.smethod_37 <string>(4116519326u),
         Module.smethod_34 <string>(3873241741u),
         Module.smethod_36 <string>(47096706u),
         Module.smethod_34 <string>(3123348845u),
         Module.smethod_35 <string>(52759410u),
         Module.smethod_37 <string>(1866797006u),
         Module.smethod_33 <string>(2474346031u),
         Module.smethod_37 <string>(726757742u),
         Module.smethod_34 <string>(3023235517u),
         Module.smethod_35 <string>(263571010u),
         Module.smethod_33 <string>(2071622767u),
         Module.smethod_35 <string>(613412642u),
         Module.smethod_33 <string>(3912121295u)
     })), new FileDescriptor[0], new GeneratedCodeInfo(null, new GeneratedCodeInfo[]
     {
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(FileDescriptorSet).TypeHandle), FileDescriptorSet.Parser, new string[]
         {
             Module.smethod_35 <string>(1542966915u)
         }, null, null, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(FileDescriptorProto).TypeHandle), FileDescriptorProto.Parser, new string[]
         {
             Module.smethod_36 <string>(2649665489u),
             Module.smethod_33 <string>(3068851852u),
             Module.smethod_37 <string>(3829225238u),
             Module.smethod_33 <string>(2960201507u),
             Module.smethod_37 <string>(2952695887u),
             Module.smethod_36 <string>(1697472868u),
             Module.smethod_36 <string>(2380496312u),
             Module.smethod_34 <string>(4181851784u),
             Module.smethod_35 <string>(647564994u),
             Module.smethod_34 <string>(796587241u),
             Module.smethod_35 <string>(1822726893u),
             Module.smethod_35 <string>(1485711652u)
         }, null, null, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(DescriptorProto).TypeHandle), DescriptorProto.Parser, new string[]
         {
             Module.smethod_37 <string>(2134609685u),
             Module.smethod_33 <string>(3778357763u),
             Module.smethod_37 <string>(3653925262u),
             Module.smethod_37 <string>(3420182137u),
             Module.smethod_36 <string>(2380496312u),
             Module.smethod_34 <string>(2268709666u),
             Module.smethod_34 <string>(1452743525u),
             Module.smethod_35 <string>(1556926582u),
             Module.smethod_34 <string>(3905274903u),
             Module.smethod_37 <string>(1427987117u)
         }, null, null, new GeneratedCodeInfo[]
         {
             new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(DescriptorProto.Types.ExtensionRange).TypeHandle), DescriptorProto.Types.ExtensionRange.Parser, new string[]
             {
                 Module.smethod_37 <string>(3741575250u),
                 Module.smethod_35 <string>(3991291701u)
             }, null, null, null),
             new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(DescriptorProto.Types.ReservedRange).TypeHandle), DescriptorProto.Types.ReservedRange.Parser, new string[]
             {
                 Module.smethod_37 <string>(3741575250u),
                 Module.smethod_34 <string>(1237606934u)
             }, null, null, null)
         }),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(FieldDescriptorProto).TypeHandle), FieldDescriptorProto.Parser, new string[]
         {
             Module.smethod_37 <string>(2134609685u),
             Module.smethod_36 <string>(652736699u),
             Module.smethod_37 <string>(2017752858u),
             Module.smethod_34 <string>(1425080158u),
             Module.smethod_36 <string>(3581657107u),
             Module.smethod_35 <string>(88045038u),
             Module.smethod_37 <string>(323137305u),
             Module.smethod_34 <string>(1518816770u),
             Module.smethod_34 <string>(2078311244u),
             Module.smethod_37 <string>(819830394u)
         }, null, new Type[]
         {
             DescriptorReflection.smethod_2(typeof(FieldDescriptorProto.Types.Type).TypeHandle),
             DescriptorReflection.smethod_2(typeof(FieldDescriptorProto.Types.Label).TypeHandle)
         }, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(OneofDescriptorProto).TypeHandle), OneofDescriptorProto.Parser, new string[]
         {
             Module.smethod_34 <string>(2643656114u)
         }, null, null, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(EnumDescriptorProto).TypeHandle), EnumDescriptorProto.Parser, new string[]
         {
             Module.smethod_35 <string>(3235769769u),
             Module.smethod_33 <string>(3388245550u),
             Module.smethod_35 <string>(1556926582u)
         }, null, null, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(EnumValueDescriptorProto).TypeHandle), EnumValueDescriptorProto.Parser, new string[]
         {
             Module.smethod_33 <string>(1982348402u),
             Module.smethod_34 <string>(3338222276u),
             Module.smethod_34 <string>(796587241u)
         }, null, null, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(ServiceDescriptorProto).TypeHandle), ServiceDescriptorProto.Parser, new string[]
         {
             Module.smethod_35 <string>(3235769769u),
             Module.smethod_35 <string>(2032688536u),
             Module.smethod_33 <string>(2909155003u)
         }, null, null, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(MethodDescriptorProto).TypeHandle), MethodDescriptorProto.Parser, new string[]
         {
             Module.smethod_37 <string>(2134609685u),
             Module.smethod_37 <string>(3537068435u),
             Module.smethod_36 <string>(1821956955u),
             Module.smethod_36 <string>(1842157958u),
             Module.smethod_33 <string>(2883221686u),
             Module.smethod_34 <string>(304873769u)
         }, null, null, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(FileOptions).TypeHandle), FileOptions.Parser, new string[]
         {
             Module.smethod_34 <string>(2869539216u),
             Module.smethod_33 <string>(1816094216u),
             Module.smethod_35 <string>(353845349u),
             Module.smethod_37 <string>(2163845995u),
             Module.smethod_36 <string>(2690067495u),
             Module.smethod_37 <string>(3624777365u),
             Module.smethod_35 <string>(3837452045u),
             Module.smethod_35 <string>(451846337u),
             Module.smethod_36 <string>(1810217419u),
             Module.smethod_36 <string>(3714602661u),
             Module.smethod_35 <string>(983446959u),
             Module.smethod_33 <string>(3100522376u),
             Module.smethod_36 <string>(1487391468u),
             Module.smethod_33 <string>(4187025826u),
             Module.smethod_33 <string>(1304513015u),
             Module.smethod_37 <string>(4092263615u)
         }, null, new Type[]
         {
             DescriptorReflection.smethod_2(typeof(FileOptions.Types.OptimizeMode).TypeHandle)
         }, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(MessageOptions).TypeHandle), MessageOptions.Parser, new string[]
         {
             Module.smethod_37 <string>(440082545u),
             Module.smethod_36 <string>(2296414231u),
             Module.smethod_36 <string>(3859287751u),
             Module.smethod_33 <string>(537403263u),
             Module.smethod_35 <string>(1892808547u)
         }, null, null, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(FieldOptions).TypeHandle), FieldOptions.Parser, new string[]
         {
             Module.smethod_37 <string>(1258168747u),
             Module.smethod_33 <string>(2678739639u),
             Module.smethod_35 <string>(1886575529u),
             Module.smethod_37 <string>(3449477389u),
             Module.smethod_37 <string>(2631391187u),
             Module.smethod_36 <string>(693138705u),
             Module.smethod_35 <string>(1892808547u)
         }, null, new Type[]
         {
             DescriptorReflection.smethod_2(typeof(FieldOptions.Types.CType).TypeHandle),
             DescriptorReflection.smethod_2(typeof(FieldOptions.Types.JSType).TypeHandle)
         }, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(EnumOptions).TypeHandle), EnumOptions.Parser, new string[]
         {
             Module.smethod_33 <string>(2454881612u),
             Module.smethod_33 <string>(4040147620u),
             Module.smethod_35 <string>(1892808547u)
         }, null, null, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(EnumValueOptions).TypeHandle), EnumValueOptions.Parser, new string[]
         {
             Module.smethod_34 <string>(1182280200u),
             Module.smethod_33 <string>(3605546240u)
         }, null, null, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(ServiceOptions).TypeHandle), ServiceOptions.Parser, new string[]
         {
             Module.smethod_36 <string>(3859287751u),
             Module.smethod_37 <string>(4092263615u)
         }, null, null, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(MethodOptions).TypeHandle), MethodOptions.Parser, new string[]
         {
             Module.smethod_33 <string>(4040147620u),
             Module.smethod_37 <string>(4092263615u)
         }, null, null, null),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(UninterpretedOption).TypeHandle), UninterpretedOption.Parser, new string[]
         {
             Module.smethod_36 <string>(2649665489u),
             Module.smethod_33 <string>(2020280232u),
             Module.smethod_33 <string>(3432734717u),
             Module.smethod_33 <string>(3106783682u),
             Module.smethod_37 <string>(673825670u),
             Module.smethod_34 <string>(1904509729u),
             Module.smethod_36 <string>(3497575026u)
         }, null, null, new GeneratedCodeInfo[]
         {
             new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(UninterpretedOption.Types.NamePart).TypeHandle), UninterpretedOption.Types.NamePart.Parser, new string[]
             {
                 Module.smethod_36 <string>(154800351u),
                 Module.smethod_33 <string>(2838436488u)
             }, null, null, null)
         }),
         new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(SourceCodeInfo).TypeHandle), SourceCodeInfo.Parser, new string[]
         {
             Module.smethod_37 <string>(2280791235u)
         }, null, null, new GeneratedCodeInfo[]
         {
             new GeneratedCodeInfo(DescriptorReflection.smethod_2(typeof(SourceCodeInfo.Types.Location).TypeHandle), SourceCodeInfo.Types.Location.Parser, new string[]
             {
                 Module.smethod_36 <string>(1934701506u),
                 Module.smethod_35 <string>(4201253344u),
                 Module.smethod_34 <string>(967143609u),
                 Module.smethod_33 <string>(281874712u),
                 Module.smethod_35 <string>(3061737428u)
             }, null, null, null)
         })
     }));
 }
예제 #11
0
        internal void AddPackage(string fullName, FileDescriptor file)
        {
            int num = DescriptorPool.smethod_2(fullName, '.');

            if (num != -1)
            {
                goto IL_2D;
            }
            goto IL_DD;
            uint        arg_B1_0;
            IDescriptor descriptor;
            string      text;

            while (true)
            {
IL_AC:
                uint num2;
                switch ((num2 = (arg_B1_0 ^ 3316964695u)) % 8u)
                {
                case 0u:
                    arg_B1_0 = (this.descriptorsByName.TryGetValue(fullName, out descriptor) ? 2404316941u : 3896060576u);
                    continue;

                case 1u:
                    this.AddPackage(DescriptorPool.smethod_3(fullName, 0, num), file);
                    text     = DescriptorPool.smethod_4(fullName, num + 1);
                    arg_B1_0 = (num2 * 1743673299u ^ 1753241596u);
                    continue;

                case 2u:
                    arg_B1_0 = (((descriptor is PackageDescriptor) ? 932590856u : 1724073788u) ^ num2 * 1699437476u);
                    continue;

                case 3u:
                    goto IL_E6;

                case 5u:
                    goto IL_DD;

                case 6u:
                    goto IL_2D;

                case 7u:
                    this.descriptorsByName[fullName] = new PackageDescriptor(text, fullName, file);
                    arg_B1_0 = 2781272387u;
                    continue;
                }
                break;
            }
            return;

IL_E6:
            throw new DescriptorValidationException(file, DescriptorPool.smethod_5(new string[]
            {
                Module.smethod_33 <string>(3031927268u),
                text,
                Module.smethod_35 <string>(2921857439u),
                descriptor.File.Name,
                Module.smethod_35 <string>(2292255829u)
            }));
IL_2D:
            arg_B1_0 = 4212142822u;
            goto IL_AC;
IL_DD:
            text     = fullName;
            arg_B1_0 = 3564429855u;
            goto IL_AC;
        }
예제 #12
0
        public static TypeRegistry FromFiles(IEnumerable <FileDescriptor> fileDescriptors)
        {
            Preconditions.CheckNotNull <IEnumerable <FileDescriptor> >(fileDescriptors, Module.smethod_37 <string>(3823684690u));
            TypeRegistry.Builder builder;
            while (true)
            {
IL_43:
                uint arg_2B_0 = 572427948u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_2B_0 ^ 570727210u)) % 3u)
                    {
                    case 0u:
                        goto IL_43;

                    case 1u:
                        builder  = new TypeRegistry.Builder();
                        arg_2B_0 = (num * 1860881079u ^ 2819786057u);
                        continue;
                    }
                    goto Block_1;
                }
            }
Block_1:
            IEnumerator <FileDescriptor> enumerator = fileDescriptors.GetEnumerator();

            try
            {
                while (true)
                {
IL_BB:
                    uint arg_8F_0 = TypeRegistry.smethod_0(enumerator) ? 1131359393u : 689609985u;
                    while (true)
                    {
                        uint num;
                        switch ((num = (arg_8F_0 ^ 570727210u)) % 5u)
                        {
                        case 1u:
                        {
                            FileDescriptor current = enumerator.Current;
                            arg_8F_0 = 1834372445u;
                            continue;
                        }

                        case 2u:
                            arg_8F_0 = 1131359393u;
                            continue;

                        case 3u:
                            goto IL_BB;

                        case 4u:
                        {
                            FileDescriptor current;
                            builder.AddFile(current);
                            arg_8F_0 = (num * 4146575965u ^ 593622994u);
                            continue;
                        }
                        }
                        goto Block_4;
                    }
                }
                Block_4 :;
            }
            finally
            {
                if (enumerator != null)
                {
                    while (true)
                    {
                        IL_FC :
                        uint arg_E4_0 = 2091946684u;
                        while (true)
                        {
                            uint num;
                            switch ((num = (arg_E4_0 ^ 570727210u)) % 3u)
                            {
                            case 0u:
                                goto IL_FC;

                            case 1u:
                                TypeRegistry.smethod_1(enumerator);
                                arg_E4_0 = (num * 3508695067u ^ 703506824u);
                                continue;
                            }
                            goto Block_8;
                        }
                    }
                    Block_8 :;
                }
            }
            return(builder.Build());
        }
예제 #13
0
            internal void AddFile(FileDescriptor fileDescriptor)
            {
                if (!this.fileDescriptorNames.Add(fileDescriptor.Name))
                {
                    return;
                }
                IEnumerator <FileDescriptor> enumerator = fileDescriptor.Dependencies.GetEnumerator();

                try
                {
                    while (true)
                    {
IL_7F:
                        int arg_56_0 = (!TypeRegistry.Builder.smethod_0(enumerator)) ? -1090525266 : -792330836;
                        while (true)
                        {
                            switch ((arg_56_0 ^ -136632362) % 4)
                            {
                            case 1:
                                goto IL_7F;

                            case 2:
                            {
                                FileDescriptor current = enumerator.Current;
                                this.AddFile(current);
                                arg_56_0 = -67223049;
                                continue;
                            }

                            case 3:
                                arg_56_0 = -792330836;
                                continue;
                            }
                            goto Block_5;
                        }
                    }
                    Block_5 :;
                }
                finally
                {
                    if (enumerator != null)
                    {
                        while (true)
                        {
                            IL_C2 :
                            uint arg_A9_0 = 2376606614u;
                            while (true)
                            {
                                uint num;
                                switch ((num = (arg_A9_0 ^ 4158334934u)) % 3u)
                                {
                                case 0u:
                                    goto IL_C2;

                                case 2u:
                                    TypeRegistry.Builder.smethod_1(enumerator);
                                    arg_A9_0 = (num * 353277277u ^ 1794307014u);
                                    continue;
                                }
                                goto Block_9;
                            }
                        }
                        Block_9 :;
                    }
                }
                IEnumerator <MessageDescriptor> enumerator2 = fileDescriptor.MessageTypes.GetEnumerator();

                try
                {
                    while (true)
                    {
IL_12E:
                        int arg_105_0 = (!TypeRegistry.Builder.smethod_0(enumerator2)) ? -2052165515 : -913572613;
                        while (true)
                        {
                            switch ((arg_105_0 ^ -136632362) % 4)
                            {
                            case 0:
                                arg_105_0 = -913572613;
                                continue;

                            case 1:
                            {
                                MessageDescriptor current2 = enumerator2.Current;
                                this.AddMessage(current2);
                                arg_105_0 = -1785936184;
                                continue;
                            }

                            case 2:
                                goto IL_12E;
                            }
                            goto Block_11;
                        }
                    }
                    Block_11 :;
                }
                finally
                {
                    if (enumerator2 != null)
                    {
                        while (true)
                        {
                            IL_171 :
                            uint arg_158_0 = 2295237479u;
                            while (true)
                            {
                                uint num;
                                switch ((num = (arg_158_0 ^ 4158334934u)) % 3u)
                                {
                                case 0u:
                                    goto IL_171;

                                case 2u:
                                    TypeRegistry.Builder.smethod_1(enumerator2);
                                    arg_158_0 = (num * 2014248563u ^ 3207272856u);
                                    continue;
                                }
                                goto Block_15;
                            }
                        }
                        Block_15 :;
                    }
                }
            }
예제 #14
0
 internal ExtensionCollection(FileDescriptor file, Extension[] extensions)
 {
     UnorderedExtensions = DescriptorUtil.ConvertAndMakeReadOnly(
         file.Proto.Extension,
         (extension, i) => new FieldDescriptor(extension, file, null, i, null, extensions?[i]));
 }
예제 #15
0
        private void CrossLink()
        {
            IEnumerator <MessageDescriptor> enumerator = this.MessageTypes.GetEnumerator();

            try
            {
                while (true)
                {
IL_60:
                    int arg_38_0 = (!FileDescriptor.smethod_7(enumerator)) ? -152615990 : -2058392403;
                    while (true)
                    {
                        switch ((arg_38_0 ^ -323940801) % 4)
                        {
                        case 0:
                            arg_38_0 = -2058392403;
                            continue;

                        case 2:
                            enumerator.Current.CrossLink();
                            arg_38_0 = -393624028;
                            continue;

                        case 3:
                            goto IL_60;
                        }
                        goto Block_4;
                    }
                }
                Block_4 :;
            }
            finally
            {
                if (enumerator != null)
                {
                    while (true)
                    {
                        IL_A1 :
                        uint arg_89_0 = 3921181848u;
                        while (true)
                        {
                            uint num;
                            switch ((num = (arg_89_0 ^ 3971026495u)) % 3u)
                            {
                            case 1u:
                                FileDescriptor.smethod_8(enumerator);
                                arg_89_0 = (num * 3830264196u ^ 519961653u);
                                continue;

                            case 2u:
                                goto IL_A1;
                            }
                            goto Block_8;
                        }
                    }
                    Block_8 :;
                }
            }
            IEnumerator <ServiceDescriptor> enumerator2 = this.Services.GetEnumerator();

            try
            {
                while (true)
                {
IL_109:
                    int arg_E1_0 = (!FileDescriptor.smethod_7(enumerator2)) ? -1638352192 : -1864184730;
                    while (true)
                    {
                        switch ((arg_E1_0 ^ -323940801) % 4)
                        {
                        case 0:
                            arg_E1_0 = -1864184730;
                            continue;

                        case 1:
                            enumerator2.Current.CrossLink();
                            arg_E1_0 = -584973483;
                            continue;

                        case 2:
                            goto IL_109;
                        }
                        goto Block_10;
                    }
                }
                Block_10 :;
            }
            finally
            {
                if (enumerator2 != null)
                {
                    while (true)
                    {
                        IL_14A :
                        uint arg_132_0 = 3979203725u;
                        while (true)
                        {
                            uint num;
                            switch ((num = (arg_132_0 ^ 3971026495u)) % 3u)
                            {
                            case 0u:
                                goto IL_14A;

                            case 1u:
                                FileDescriptor.smethod_8(enumerator2);
                                arg_132_0 = (num * 2140043047u ^ 1525068915u);
                                continue;
                            }
                            goto Block_14;
                        }
                    }
                    Block_14 :;
                }
            }
        }
예제 #16
0
 internal DescriptorBase(FileDescriptor file, string fullName, int index)
 {
     File     = file;
     FullName = fullName;
     Index    = index;
 }
예제 #17
0
        internal MessageDescriptor(DescriptorProto proto, FileDescriptor file, MessageDescriptor parent, int typeIndex, GeneratedCodeInfo generatedCodeInfo) : base(file, file.ComputeFullName(parent, proto.Name), typeIndex)
        {
            MessageDescriptor __4__this;

            while (true)
            {
IL_247:
                uint arg_20A_0 = 4043199534u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_20A_0 ^ 3788346645u)) % 12u)
                    {
                    case 0u:
                        this.< ContainingType > k__BackingField = parent;
                        arg_20A_0 = (num * 1002898729u ^ 1601684763u);
                        continue;

                    case 1u:
                    {
                        GeneratedCodeInfo expr_1D9 = generatedCodeInfo;
                        this.< Parser > k__BackingField = ((expr_1D9 != null) ? expr_1D9.Parser : null);
                        arg_20A_0 = 2694476678u;
                        continue;
                    }

                    case 2u:
                        file.DescriptorPool.AddSymbol(this);
                        this.Fieldsk__BackingField = new MessageDescriptor.FieldCollection(this);
                        arg_20A_0 = (num * 174268781u ^ 339015310u);
                        continue;

                    case 3u:
                        goto IL_247;

                    case 4u:
                        this.< NestedTypes > k__BackingField = DescriptorUtil.ConvertAndMakeReadOnly <DescriptorProto, MessageDescriptor>(proto.NestedType, (DescriptorProto type, int index) => new MessageDescriptor(type, file, __4__this, index, generatedCodeInfo.NestedTypes[index]));
                        arg_20A_0 = (num * 1204710165u ^ 359963217u);
                        continue;

                    case 5u:
                    {
                        IEnumerable <FieldDescriptor>  arg_161_0 = this.fieldsInNumberOrder;
                        Func <FieldDescriptor, string> arg_161_1;
                        if ((arg_161_1 = MessageDescriptor.__c.__9__4_5) == null)
                        {
                            arg_161_1 = (MessageDescriptor.__c.__9__4_5 = new Func <FieldDescriptor, string>(MessageDescriptor.__c.__9.<.ctor > b__4_5));
                        }
                        this.jsonFieldMap = new ReadOnlyDictionary <string, FieldDescriptor>(arg_161_0.ToDictionary(arg_161_1));
                        arg_20A_0         = 3491112463u;
                        continue;
                    }

                    case 6u:
                    {
                        this.fieldsInDeclarationOrder = DescriptorUtil.ConvertAndMakeReadOnly <FieldDescriptorProto, FieldDescriptor>(proto.Field, delegate(FieldDescriptorProto field, int index)
                            {
                                FileDescriptor arg_26_1    = file;
                                MessageDescriptor arg_26_2 = __4__this;
                                GeneratedCodeInfo expr_14  = generatedCodeInfo;
                                return(new FieldDescriptor(field, arg_26_1, arg_26_2, index, (expr_14 != null) ? expr_14.PropertyNames[index] : null));
                            });
                        IEnumerable <FieldDescriptor> arg_11D_0 = this.fieldsInDeclarationOrder;
                        Func <FieldDescriptor, int>   arg_11D_1;
                        if ((arg_11D_1 = MessageDescriptor.__c.__9__4_4) == null)
                        {
                            arg_11D_1 = (MessageDescriptor.__c.__9__4_4 = new Func <FieldDescriptor, int>(MessageDescriptor.__c.__9.<.ctor > b__4_4));
                        }
                        this.fieldsInNumberOrder = new ReadOnlyCollection <FieldDescriptor>(arg_11D_0.OrderBy(arg_11D_1).ToArray <FieldDescriptor>());
                        arg_20A_0 = 2414391428u;
                        continue;
                    }

                    case 7u:
                    {
                        GeneratedCodeInfo expr_BF = generatedCodeInfo;
                        this.< ClrType > k__BackingField = ((expr_BF != null) ? expr_BF.ClrType : null);
                        arg_20A_0 = 3870743541u;
                        continue;
                    }

                    case 8u:
                        this.< EnumTypes > k__BackingField = DescriptorUtil.ConvertAndMakeReadOnly <EnumDescriptorProto, EnumDescriptor>(proto.EnumType, (EnumDescriptorProto type, int index) => new EnumDescriptor(type, file, __4__this, index, generatedCodeInfo.NestedEnums[index]));
                        arg_20A_0 = (num * 3914277205u ^ 2964567391u);
                        continue;

                    case 10u:
                        this.< Oneofs > k__BackingField = DescriptorUtil.ConvertAndMakeReadOnly <OneofDescriptorProto, OneofDescriptor>(proto.OneofDecl, (OneofDescriptorProto oneof, int index) => new OneofDescriptor(oneof, file, __4__this, index, generatedCodeInfo.OneofNames[index]));
                        arg_20A_0 = (num * 3879854900u ^ 3765292269u);
                        continue;

                    case 11u:
                        __4__this = this;
                        this.< Proto > k__BackingField = proto;
                        arg_20A_0 = (num * 1105444768u ^ 1991989292u);
                        continue;
                    }
                    return;
                }
            }
        }
예제 #18
0
        private void ImportPublicDependencies(FileDescriptor file)
        {
            IEnumerator <FileDescriptor> enumerator = file.PublicDependencies.GetEnumerator();

            try
            {
                while (true)
                {
IL_AF:
                    uint arg_7C_0 = DescriptorPool.smethod_0(enumerator) ? 483463677u : 1013596277u;
                    while (true)
                    {
                        uint num;
                        switch ((num = (arg_7C_0 ^ 1510700764u)) % 6u)
                        {
                        case 0u:
                            goto IL_AF;

                        case 1u:
                        {
                            FileDescriptor current = enumerator.Current;
                            arg_7C_0 = 2088187487u;
                            continue;
                        }

                        case 2u:
                            arg_7C_0 = 483463677u;
                            continue;

                        case 3u:
                        {
                            FileDescriptor current;
                            arg_7C_0 = ((this.dependencies.Add(current) ? 3551628460u : 3841956582u) ^ num * 990315274u);
                            continue;
                        }

                        case 4u:
                        {
                            FileDescriptor current;
                            this.ImportPublicDependencies(current);
                            arg_7C_0 = (num * 2977631201u ^ 244456022u);
                            continue;
                        }
                        }
                        goto Block_4;
                    }
                }
                Block_4 :;
            }
            finally
            {
                if (enumerator != null)
                {
                    while (true)
                    {
                        IL_F3 :
                        uint arg_DB_0 = 273087490u;
                        while (true)
                        {
                            uint num;
                            switch ((num = (arg_DB_0 ^ 1510700764u)) % 3u)
                            {
                            case 0u:
                                goto IL_F3;

                            case 1u:
                                DescriptorPool.smethod_1(enumerator);
                                arg_DB_0 = (num * 2366569890u ^ 4210252562u);
                                continue;
                            }
                            goto Block_8;
                        }
                    }
                    Block_8 :;
                }
            }
        }
예제 #19
0
 internal DescriptorBase(FileDescriptor file, string fullName, int index)
 {
     this.file     = file;
     this.fullName = fullName;
     this.index    = index;
 }
예제 #20
0
        internal DescriptorPool(FileDescriptor[] dependencyFiles)
        {
            while (true)
            {
IL_15F:
                uint arg_125_0 = 2867741474u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_125_0 ^ 3587480274u)) % 11u)
                    {
                    case 0u:
                    {
                        int num2;
                        arg_125_0 = ((num2 < dependencyFiles.Length) ? 4207413293u : 3795583198u);
                        continue;
                    }

                    case 1u:
                    {
                        int num3;
                        arg_125_0 = ((num3 < dependencyFiles.Length) ? 3513816270u : 2166799543u);
                        continue;
                    }

                    case 2u:
                    {
                        this.dependencies = new HashSet <FileDescriptor>();
                        int num3 = 0;
                        arg_125_0 = (num * 2631113323u ^ 2574616807u);
                        continue;
                    }

                    case 3u:
                    {
                        int            num2;
                        FileDescriptor fileDescriptor = dependencyFiles[num2];
                        this.AddPackage(fileDescriptor.Package, fileDescriptor);
                        num2++;
                        arg_125_0 = 3276048337u;
                        continue;
                    }

                    case 4u:
                    {
                        int num3;
                        this.dependencies.Add(dependencyFiles[num3]);
                        arg_125_0 = 3179756802u;
                        continue;
                    }

                    case 5u:
                        arg_125_0 = (num * 3693977428u ^ 1260750322u);
                        continue;

                    case 6u:
                    {
                        int num2 = 0;
                        arg_125_0 = (num * 1946987356u ^ 281619545u);
                        continue;
                    }

                    case 7u:
                    {
                        int num3;
                        this.ImportPublicDependencies(dependencyFiles[num3]);
                        num3++;
                        arg_125_0 = (num * 4050069737u ^ 2871900550u);
                        continue;
                    }

                    case 8u:
                        arg_125_0 = (num * 2664253148u ^ 3891939312u);
                        continue;

                    case 9u:
                        goto IL_15F;
                    }
                    return;
                }
            }
        }
예제 #21
0
        internal FieldDescriptor(FieldDescriptorProto proto, FileDescriptor file, MessageDescriptor parent, int index, string propertyName) : base(file, file.ComputeFullName(parent, proto.Name), index)
        {
            while (true)
            {
IL_192:
                uint arg_155_0 = 668326049u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_155_0 ^ 1907900556u)) % 12u)
                    {
                    case 0u:
                        this.containingOneof = parent.Oneofs[proto.OneofIndex];
                        arg_155_0            = 951252349u;
                        continue;

                    case 2u:
                        goto IL_192;

                    case 3u:
                        arg_155_0 = (((proto.OneofIndex != -1) ? 3178787542u : 4269045895u) ^ num * 287148678u);
                        continue;

                    case 4u:
                        arg_155_0 = (((proto.OneofIndex < 0) ? 830153714u : 1120517676u) ^ num * 2667568972u);
                        continue;

                    case 5u:
                        this.proto = proto;
                        arg_155_0  = (((proto.Type == (FieldDescriptorProto.Types.Type) 0) ? 1249293554u : 878441721u) ^ num * 64997452u);
                        continue;

                    case 6u:
                        arg_155_0 = ((this.FieldNumber > 0) ? 416220771u : 1243880467u);
                        continue;

                    case 7u:
                        goto IL_199;

                    case 8u:
                        arg_155_0 = (((proto.OneofIndex < parent.Proto.OneofDecl.Count) ? 3890232560u : 2326943442u) ^ num * 1872585197u);
                        continue;

                    case 9u:
                        this.fieldType = FieldDescriptor.GetFieldTypeFromProtoType(proto.Type);
                        arg_155_0      = (num * 2182631442u ^ 3138733388u);
                        continue;

                    case 10u:
                        goto IL_1AA;

                    case 11u:
                        this.containingType = parent;
                        arg_155_0           = 1386389043u;
                        continue;
                    }
                    goto Block_6;
                }
            }
Block_6:
            goto IL_1CF;
IL_199:
            throw new DescriptorValidationException(this, Module.smethod_33 <string>(1349002182u));
IL_1AA:
            throw new DescriptorValidationException(this, FieldDescriptor.smethod_0(Module.smethod_37 <string>(3181016348u), new object[]
            {
                parent.Name
            }));
IL_1CF:
            file.DescriptorPool.AddSymbol(this);
            this.propertyName = propertyName;
        }