ReadPrimitive() public static method

public static ReadPrimitive ( Stream stream, System.DateTime &value ) : void
stream Stream
value System.DateTime
return void
        public object Deserialize(Serializer serializer, Type staticType, Stream stream)
        {
            bool result;

            Primitives.ReadPrimitive(stream, out result);
            return(result);
        }
Example #2
0
        public object Deserialize(Serializer serializer, Type staticType, Stream stream)
        {
            uint lengthField;

            Primitives.ReadPrimitive(stream, out lengthField);
            if (lengthField == 0)
            {
                return(null);
            }
            else
            {
                int             length           = (int)lengthField - 1;
                Type[]          genericArguments = staticType.GetGenericArguments();
                Type            elementType      = genericArguments[0];
                TypeData        elementTypeData  = serializer.GetTypeData(elementType);
                ConstructorInfo listConstructor  = GetConstructorForType(staticType);
                IList           result           = (IList)listConstructor.Invoke(new object[] { length });
                for (int i = 0; i < length; i++)
                {
                    object element = elementTypeData.TypeSerializer.Deserialize(serializer, elementType, stream);
                    result.Add(element);
                }
                return(result);
            }
        }
Example #3
0
        public object Deserialize(Serializer serializer, Type staticType, Stream stream)
        {
            uint id;

            Primitives.ReadPrimitive(stream, out id);

            if (id == 0)
            {
                return(null);
            }
            if (id == Serializer.ObjectTypeId)
            {
                return(new object());
            }

            TypeData typeData = serializer.GetTypeDataById(id);
            Type     type     = typeData.Type;
            object   result   = GetConstructorForType(type).Invoke(new object[0]);
            var      fields   = Helpers.GetFieldInfos(type);

            foreach (FieldInfo fieldInfo in fields)
            {
                Type     fieldType   = fieldInfo.FieldType;
                TypeData subTypeData = serializer.GetTypeData(fieldType);
                object   value       = subTypeData.TypeSerializer.Deserialize(serializer, fieldType, stream);
                fieldInfo.SetValue(result, value);
            }
            return(result);
        }
Example #4
0
        public object Deserialize(Serializer serializer, Type staticType, Stream stream)
        {
            uint lengthField;

            Primitives.ReadPrimitive(stream, out lengthField);
            if (lengthField == 0)
            {
                return(null);
            }
            else
            {
                int             length                = (int)lengthField - 1;
                Type[]          genericArguments      = staticType.GetGenericArguments();
                Type            keyType               = genericArguments[0];
                Type            valueType             = genericArguments[1];
                TypeData        keyTypeData           = serializer.GetTypeData(keyType);
                TypeData        valueTypeData         = serializer.GetTypeData(valueType);
                ConstructorInfo dictionaryConstructor = GetConstructorForType(staticType);
                IDictionary     result                = (IDictionary)dictionaryConstructor.Invoke(new object[] { length });
                for (int i = 0; i < length; i++)
                {
                    object key   = keyTypeData.TypeSerializer.Deserialize(serializer, keyType, stream);
                    object value = valueTypeData.TypeSerializer.Deserialize(serializer, valueType, stream);
                    result.Add(key, value);
                }
                return(result);
            }
        }
Example #5
0
        static void Deserialize(Serializer serializer, Stream stream, out object ob)
        {
            ushort id;

            Primitives.ReadPrimitive(stream, out id);

            if (id == 0)
            {
                ob = null;
                return;
            }

            serializer.m_deserializerTrampolines[id](serializer, stream, out ob);
        }
        public static void Deserialize(Serializer serializer, Stream stream, out object ob)
        {
            uint id;

            Primitives.ReadPrimitive(stream, out id);

            if (id == 0)
            {
                ob = null;
                return;
            }

            var del = serializer.GetDeserializeTrampolineFromId(id);

            del(serializer, stream, out ob);
        }
Example #7
0
        public object Deserialize(Serializer serializer, Type staticType, Stream stream)
        {
            uint lengthField;

            Primitives.ReadPrimitive(stream, out lengthField);
            if (lengthField == 0)
            {
                return(null);
            }
            else
            {
                uint length      = lengthField - 1;
                Type elementType = staticType.GetElementType();
                IStaticTypeSerializer typeSerializer = serializer.GetTypeData(elementType).TypeSerializer;
                var array = Array.CreateInstance(elementType, length);
                for (int i = 0; i < length; i++)
                {
                    array.SetValue(typeSerializer.Deserialize(serializer, elementType, stream), i);
                }
                return(array);
            }
        }
        public object Deserialize(Serializer serializer, Type staticType, Stream stream)
        {
            uint len;

            Primitives.ReadPrimitive(stream, out len);

            if (len == 0)
            {
                return(null);
            }
            else if (len == 1)
            {
                return(string.Empty);;
            }

            uint totalChars;

            Primitives.ReadPrimitive(stream, out totalChars);

            len -= 1;

            var buf = new byte[len];

            int l = 0;

            while (l < len)
            {
                int r = stream.Read(buf, l, (int)len - l);
                if (r == 0)
                {
                    throw new EndOfStreamException();
                }
                l += r;
            }

            return(encoding.GetString(buf));
        }
Example #9
0
        public static void Deserialize(Serializer serializer, Stream stream, out object ob)
        {
            uint id;

            Primitives.ReadPrimitive(stream, out id);

            if (id == 0)
            {
                ob = null;
                return;
            }

            if (id == Serializer.ObjectTypeId)
            {
                ob = new object();
                return;
            }

            serializer.Settings.BeforeDeserializingObjectWithTypeId?.Invoke(id);

            var del = serializer.GetDeserializeTrampolineFromId(id);

            del(serializer, stream, out ob);
        }