scripts
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Google.Protobuf.Reflection
|
||||
{
|
||||
// Token: 0x0200006D RID: 109
|
||||
public sealed class TypeRegistry
|
||||
{
|
||||
// Token: 0x170001B4 RID: 436
|
||||
// (get) Token: 0x06000601 RID: 1537 RVA: 0x00015091 File Offset: 0x00013291
|
||||
public static TypeRegistry Empty { get; } = new TypeRegistry(new Dictionary<string, MessageDescriptor>());
|
||||
|
||||
// Token: 0x06000602 RID: 1538 RVA: 0x00015098 File Offset: 0x00013298
|
||||
private TypeRegistry(Dictionary<string, MessageDescriptor> fullNameToMessageMap)
|
||||
{
|
||||
this.fullNameToMessageMap = fullNameToMessageMap;
|
||||
}
|
||||
|
||||
// Token: 0x06000603 RID: 1539 RVA: 0x000150A8 File Offset: 0x000132A8
|
||||
public MessageDescriptor Find(string fullName)
|
||||
{
|
||||
MessageDescriptor messageDescriptor;
|
||||
this.fullNameToMessageMap.TryGetValue(fullName, out messageDescriptor);
|
||||
return messageDescriptor;
|
||||
}
|
||||
|
||||
// Token: 0x06000604 RID: 1540 RVA: 0x000150C5 File Offset: 0x000132C5
|
||||
public static TypeRegistry FromFiles(params FileDescriptor[] fileDescriptors)
|
||||
{
|
||||
return TypeRegistry.FromFiles(fileDescriptors);
|
||||
}
|
||||
|
||||
// Token: 0x06000605 RID: 1541 RVA: 0x000150D0 File Offset: 0x000132D0
|
||||
public static TypeRegistry FromFiles(IEnumerable<FileDescriptor> fileDescriptors)
|
||||
{
|
||||
ProtoPreconditions.CheckNotNull<IEnumerable<FileDescriptor>>(fileDescriptors, "fileDescriptors");
|
||||
TypeRegistry.Builder builder = new TypeRegistry.Builder();
|
||||
foreach (FileDescriptor fileDescriptor in fileDescriptors)
|
||||
{
|
||||
builder.AddFile(fileDescriptor);
|
||||
}
|
||||
return builder.Build();
|
||||
}
|
||||
|
||||
// Token: 0x06000606 RID: 1542 RVA: 0x00015130 File Offset: 0x00013330
|
||||
public static TypeRegistry FromMessages(params MessageDescriptor[] messageDescriptors)
|
||||
{
|
||||
return TypeRegistry.FromMessages(messageDescriptors);
|
||||
}
|
||||
|
||||
// Token: 0x06000607 RID: 1543 RVA: 0x00015138 File Offset: 0x00013338
|
||||
public static TypeRegistry FromMessages(IEnumerable<MessageDescriptor> messageDescriptors)
|
||||
{
|
||||
ProtoPreconditions.CheckNotNull<IEnumerable<MessageDescriptor>>(messageDescriptors, "messageDescriptors");
|
||||
return TypeRegistry.FromFiles(messageDescriptors.Select((MessageDescriptor md) => md.File));
|
||||
}
|
||||
|
||||
// Token: 0x04000265 RID: 613
|
||||
private readonly Dictionary<string, MessageDescriptor> fullNameToMessageMap;
|
||||
|
||||
// Token: 0x020000C6 RID: 198
|
||||
private class Builder
|
||||
{
|
||||
// Token: 0x06000780 RID: 1920 RVA: 0x00017801 File Offset: 0x00015A01
|
||||
internal Builder()
|
||||
{
|
||||
this.types = new Dictionary<string, MessageDescriptor>();
|
||||
this.fileDescriptorNames = new HashSet<string>();
|
||||
}
|
||||
|
||||
// Token: 0x06000781 RID: 1921 RVA: 0x00017820 File Offset: 0x00015A20
|
||||
internal void AddFile(FileDescriptor fileDescriptor)
|
||||
{
|
||||
if (!this.fileDescriptorNames.Add(fileDescriptor.Name))
|
||||
{
|
||||
return;
|
||||
}
|
||||
foreach (FileDescriptor fileDescriptor2 in fileDescriptor.Dependencies)
|
||||
{
|
||||
this.AddFile(fileDescriptor2);
|
||||
}
|
||||
foreach (MessageDescriptor messageDescriptor in fileDescriptor.MessageTypes)
|
||||
{
|
||||
this.AddMessage(messageDescriptor);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000782 RID: 1922 RVA: 0x000178C0 File Offset: 0x00015AC0
|
||||
private void AddMessage(MessageDescriptor messageDescriptor)
|
||||
{
|
||||
foreach (MessageDescriptor messageDescriptor2 in messageDescriptor.NestedTypes)
|
||||
{
|
||||
this.AddMessage(messageDescriptor2);
|
||||
}
|
||||
this.types[messageDescriptor.FullName] = messageDescriptor;
|
||||
}
|
||||
|
||||
// Token: 0x06000783 RID: 1923 RVA: 0x00017920 File Offset: 0x00015B20
|
||||
internal TypeRegistry Build()
|
||||
{
|
||||
return new TypeRegistry(this.types);
|
||||
}
|
||||
|
||||
// Token: 0x04000301 RID: 769
|
||||
private readonly Dictionary<string, MessageDescriptor> types;
|
||||
|
||||
// Token: 0x04000302 RID: 770
|
||||
private readonly HashSet<string> fileDescriptorNames;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user