WritePrimitive() public static method

public static WritePrimitive ( Stream stream, System.DateTime value ) : void
stream Stream
value System.DateTime
return void
Example #1
0
        public static void Serialize(Serializer serializer, Stream stream, object ob)
        {
            if (ob == null)
            {
                Primitives.WritePrimitive(stream, (uint)0);
                return;
            }

            var type = ob.GetType();

            serializer.Settings.BeforeSerializingObjectOfType?.Invoke(type);

            SerializeDelegate <object> del;

            uint id = serializer.GetTypeIdAndSerializer(type, out del);

            Primitives.WritePrimitive(stream, id);

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

            del(serializer, stream, ob);
        }
        public void Serialize(Serializer serializer, Type staticType, Stream stream, object ob)
        {
            string value = (string)ob;

            if (value == null)
            {
                Primitives.WritePrimitive(stream, (uint)0);
                return;
            }
            else if (value.Length == 0)
            {
                Primitives.WritePrimitive(stream, (uint)1);
                return;
            }

            int len = encoding.GetByteCount(value);

            Primitives.WritePrimitive(stream, (uint)len + 1);
            Primitives.WritePrimitive(stream, (uint)value.Length);

            var buf = new byte[len];

            encoding.GetBytes(value, 0, value.Length, buf, 0);

            stream.Write(buf, 0, len);
        }
Example #3
0
        public void Serialize(Serializer serializer, Type staticType, Stream stream, object ob)
        {
            if (ob == null)
            {
                Primitives.WritePrimitive(stream, (uint)0);
                return;
            }

            var type = ob.GetType();

            TypeData typeData = serializer.GetTypeData(type);

            var id = typeData.TypeID;

            Primitives.WritePrimitive(stream, id);

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

            var fields = Helpers.GetFieldInfos(type);

            foreach (FieldInfo fieldInfo in fields)
            {
                object   value       = fieldInfo.GetValue(ob);
                Type     fieldType   = fieldInfo.FieldType;
                TypeData subTypeData = serializer.GetTypeData(fieldType);
                subTypeData.TypeSerializer.Serialize(serializer, fieldType, stream, value);
            }
        }
Example #4
0
        public void Serialize(Serializer serializer, Type staticType, Stream stream, object ob)
        {
            if (ob == null)
            {
                Primitives.WritePrimitive(stream, (uint)0);
            }
            else
            {
                IDictionary valueDict = (IDictionary)ob;
                int         length    = valueDict.Count;
                Primitives.WritePrimitive(stream, (uint)length + 1);

                Type[]   genericArguments = staticType.GetGenericArguments();
                Type     keyType          = genericArguments[0];
                Type     valueType        = genericArguments[1];
                TypeData keyTypeData      = serializer.GetTypeData(keyType);
                TypeData valueTypeData    = serializer.GetTypeData(valueType);

                foreach (DictionaryEntry entry in valueDict)
                {
                    keyTypeData.TypeSerializer.Serialize(serializer, keyType, stream, entry.Key);
                    valueTypeData.TypeSerializer.Serialize(serializer, valueType, stream, entry.Value);
                }
            }
        }
        public static void Serialize(Serializer serializer, Stream stream, object ob)
        {
            if (ob == null)
            {
                Primitives.WritePrimitive(stream, (uint)0);
                return;
            }

            var type = ob.GetType();

            SerializeDelegate <object> del;

            uint id = serializer.GetTypeIdAndSerializer(type, out del);

            Primitives.WritePrimitive(stream, id);

            del(serializer, stream, ob);
        }
Example #6
0
        public void Serialize(Serializer serializer, Type staticType, Stream stream, object ob)
        {
            if (ob == null)
            {
                Primitives.WritePrimitive(stream, (uint)0);
            }
            else
            {
                Type  elementType = ob.GetType().GetElementType();
                Array array       = (Array)ob;
                int   length      = array.Length;
                Primitives.WritePrimitive(stream, (uint)length + 1);
                IStaticTypeSerializer typeSerializer = serializer.GetTypeData(elementType).TypeSerializer;

                foreach (object element in array)
                {
                    typeSerializer.Serialize(serializer, elementType, stream, element);
                }
            }
        }
Example #7
0
        static void Serialize(Serializer serializer, Stream stream, object ob)
        {
            if (ob == null)
            {
                Primitives.WritePrimitive(stream, 0);
                return;
            }

            var type = ob.GetType();

            ushort id;

            if (serializer.m_typeIDMap.TryGetValue(type, out id) == false)
            {
                throw new InvalidOperationException(String.Format("Unknown type {0}", type.FullName));
            }

            Primitives.WritePrimitive(stream, id);

            serializer.m_serializerTrampolines[id](serializer, stream, ob);
        }
Example #8
0
        public void Serialize(Serializer serializer, Type staticType, Stream stream, object ob)
        {
            if (ob == null)
            {
                Primitives.WritePrimitive(stream, (uint)0);
            }
            else
            {
                IList value  = (IList)ob;
                int   length = value.Count;
                Primitives.WritePrimitive(stream, (uint)length + 1);

                Type[]   genericArguments = staticType.GetGenericArguments();
                Type     elementType      = genericArguments[0];
                TypeData elementTypeData  = serializer.GetTypeData(elementType);

                foreach (object element in value)
                {
                    elementTypeData.TypeSerializer.Serialize(serializer, elementType, stream, element);
                }
            }
        }
		public void Serialize(Serializer serializer, Type staticType, Stream stream, object ob)
		{
			Primitives.WritePrimitive(stream, (long) ob);
		}