Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 2
0
 /// <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)
 {
 }
Ejemplo n.º 4
0
 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 */))
        {
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
 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);
 }
Ejemplo n.º 8
0
 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))
 {
 }
Ejemplo n.º 10
0
        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));
        }