using System; using System.Collections.Generic; namespace ProtoCSStruct { public class ProtoDescriptor { public string ProtoFile; public string NameSpace; public string OutPutPath; public string OutPutFile; public string EnumOutPutFile; public string ClassOutPutFile; public List Enums; public Dictionary EnumsMap; public List Messages; public Dictionary MessagesMap; public Dictionary MessagesMapNeedClassDesc; public ProtoDescriptor() { Enums = new List(); EnumsMap = new Dictionary(); Messages = new List(); MessagesMap = new Dictionary(); MessagesMapNeedClassDesc = new Dictionary(); } public ProtoEnum GetEnumByName(string name) { if(EnumsMap.ContainsKey(name)) { return EnumsMap[name]; } return null; } public ProtoMessage GetMessageByName(string name) { if (MessagesMap.ContainsKey(name)) { return MessagesMap[name]; } return null; } } public class ProtoDescriptorAll : Singleton { public List AllProtoDescriptor = new List(); public ProtoEnum GetEnumByName(string name) { foreach (var pd in AllProtoDescriptor) { var protoenum = pd.GetEnumByName(name); if (protoenum != null) { return protoenum; } } return null; } public ProtoMessage GetMessageByName(string name) { foreach (var pd in AllProtoDescriptor) { var message = pd.GetMessageByName(name); if (message != null) { return message; } } return null; } } }