void ICodedInputStream.ReadEnumArray(uint fieldTag, string fieldName, ICollection <IEnumLite> list, out ICollection <object> unknown, IEnumLiteMap mapping) { unknown = null; List <object> array = new List <object>(); if (ReadEnumArray(fieldName, array)) { foreach (object rawValue in array) { IEnumLite item = null; if (rawValue is int) { item = mapping.FindValueByNumber((int)rawValue); } else if (rawValue is string) { item = mapping.FindValueByName((string)rawValue); } if (item != null) { list.Add(item); } else { if (unknown == null) { unknown = new List <object>(); } unknown.Add(rawValue); } } } }
/// <summary> /// Reads an enum field value from the stream. The caller is responsible /// for converting the numeric value to an actual enum. /// </summary> public bool ReadEnum(ref IEnumLite value, out object unknown, IEnumLiteMap mapping) { tokenizer.Consume(":"); if (tokenizer.LookingAtInteger()) { int rawValue = tokenizer.ConsumeInt32(); value = mapping.FindValueByNumber(rawValue); if (value != null) { unknown = null; return(true); } unknown = rawValue; } else { string rawName = tokenizer.ConsumeIdentifier(); value = mapping.FindValueByName(rawName); if (value != null) { unknown = null; return(true); } unknown = rawName; } return(false); }
public GeneratedRepeatExtensionLite(string fullName, TContainingType containingTypeDefaultInstance, IMessageLite messageDefaultInstance, IEnumLiteMap enumTypeMap, int number, FieldType type, bool isPacked) : base( fullName, containingTypeDefaultInstance, new List <TExtensionType>(), messageDefaultInstance, enumTypeMap, number, type, isPacked) { }
public ExtensionDescriptorLite(string fullName, IEnumLiteMap enumTypeMap, int number, FieldType type, object defaultValue, bool isRepeated, bool isPacked) { this.fullName = fullName; this.enumTypeMap = enumTypeMap; this.number = number; this.type = type; this.mapType = FieldMappingAttribute.MappedTypeFromFieldType(type); this.isRepeated = isRepeated; this.isPacked = isPacked; this.defaultValue = defaultValue; }
/** For use by generated code only. */ public GeneratedExtensionLite( string fullName, TContainingType containingTypeDefaultInstance, TExtensionType defaultValue, IMessageLite messageDefaultInstance, IEnumLiteMap enumTypeMap, int number, FieldType type) : this(containingTypeDefaultInstance, defaultValue, messageDefaultInstance, new ExtensionDescriptorLite(fullName, enumTypeMap, number, type, defaultValue, false /* isRepeated */, false /* isPacked */)) { }
public bool ReadEnum(ref IEnumLite value, out object unknown, IEnumLiteMap mapping) { int num = (int)this.ReadRawVarint32(); value = mapping.FindValueByNumber(num); if (value != null) { unknown = null; return(true); } unknown = num; return(false); }
bool ICodedInputStream.ReadEnum(ref IEnumLite value, out object unknown, IEnumLiteMap mapping) { value = null; unknown = null; if (ReadEnum(ref unknown)) { if (unknown is int) { value = mapping.FindValueByNumber((int)unknown); } else if (unknown is string) { value = mapping.FindValueByName((string)unknown); } return(value != null); } return(false); }
public void ReadEnumArray(uint fieldTag, string fieldName, ICollection <IEnumLite> list, out ICollection <object> unknown, IEnumLiteMap mapping) { unknown = null; tokenizer.Consume(":"); tokenizer.Consume("["); while (!tokenizer.TryConsume("]")) { IEnumLite value; if (tokenizer.LookingAtInteger()) { int rawValue = tokenizer.ConsumeInt32(); value = mapping.FindValueByNumber(rawValue); if (value == null) { if (unknown == null) { unknown = new List <object>(); } unknown.Add(rawValue); } } else { string rawName = tokenizer.ConsumeIdentifier(); value = mapping.FindValueByName(rawName); if (value == null) { if (unknown == null) { unknown = new List <object>(); } unknown.Add(rawName); } } } }
protected GeneratedExtensionLite(string fullName, TContainingType containingTypeDefaultInstance, TExtensionType defaultValue, IMessageLite messageDefaultInstance, IEnumLiteMap enumTypeMap, int number, FieldType type, bool isPacked) : this(containingTypeDefaultInstance, defaultValue, messageDefaultInstance, new ExtensionDescriptorLite(fullName, enumTypeMap, number, type, GeneratedExtensionLite <TContainingType, TExtensionType> .Empty, true, isPacked)) { }
public void ReadEnumArray(uint fieldTag, string fieldName, ICollection <IEnumLite> list, out ICollection <object> unknown, IEnumLiteMap mapping) { unknown = null; IEnumLite enumLite = null; WireFormat.WireType tagWireType = WireFormat.GetTagWireType(fieldTag); if (tagWireType == WireFormat.WireType.LengthDelimited) { int byteLimit = (int)(this.ReadRawVarint32() & 2147483647u); int oldLimit = this.PushLimit(byteLimit); while (!this.ReachedLimit) { object obj; if (this.ReadEnum(ref enumLite, out obj, mapping)) { list.Add(enumLite); } else { if (unknown == null) { unknown = new List <object>(); } unknown.Add(obj); } } this.PopLimit(oldLimit); return; } do { object obj; if (this.ReadEnum(ref enumLite, out obj, mapping)) { list.Add(enumLite); } else { if (unknown == null) { unknown = new List <object>(); } unknown.Add(obj); } }while (this.ContinueArray(fieldTag)); }