private void Given_Sig(SerializedType ret, params Argument_v1 [] args)
 {
     ssig = new SerializedSignature
     {
         ReturnValue = new Argument_v1 { Type = ret }
     };
 }
Esempio n. 2
0
        private object Get(string command, string key, bool keyIsChecked, uint hash)
        {
            if (!keyIsChecked)
            {
                checkKey(key);
            }
            object value = serverPool.Execute <object>(hash, null, delegate(MSocket socket)
            {
                CheckDB(socket, hash);
                using (RedisCommand cmd = new RedisCommand(socket, 2, command))
                {
                    cmd.WriteKey(keyPrefix + key);
                }
                string result = socket.ReadResponse();
                if (!string.IsNullOrEmpty(result) && result[0] == '$')
                {
                    int len = 0;
                    if (int.TryParse(result.Substring(1), out len) && len > 0)
                    {
                        byte[] bytes = socket.ReadLineBytes();
                        if (bytes.Length > 0)
                        {
                            byte[] data       = new byte[bytes.Length - 1];
                            SerializedType st = (SerializedType)bytes[0];
                            Array.Copy(bytes, 1, data, 0, data.Length);
                            bytes = null;
                            return(Serializer.DeSerialize(data, st));
                        }
                    }
                }
                return(null);
            });

            return(value);
        }
Esempio n. 3
0
        public static object DeSerialize(byte[] bytes, SerializedType type)
        {
            switch (type)
            {
            case SerializedType.String:
                return(Encoding.UTF8.GetString(bytes));

            case SerializedType.Datetime:
                return(new DateTime(BitConverter.ToInt64(bytes, 0)));

            case SerializedType.Bool:
                return(bytes[0] == 1);

            case SerializedType.Byte:
                return(bytes[0]);

            case SerializedType.Short:
                return(BitConverter.ToInt16(bytes, 0));

            case SerializedType.UShort:
                return(BitConverter.ToUInt16(bytes, 0));

            case SerializedType.Int:
                return(BitConverter.ToInt32(bytes, 0));

            case SerializedType.UInt:
                return(BitConverter.ToUInt32(bytes, 0));

            case SerializedType.Long:
                return(BitConverter.ToInt64(bytes, 0));

            case SerializedType.ULong:
                return(BitConverter.ToUInt64(bytes, 0));

            case SerializedType.Float:
                return(BitConverter.ToSingle(bytes, 0));

            case SerializedType.Double:
                return(BitConverter.ToDouble(bytes, 0));

            case SerializedType.Object:
                using (MemoryStream ms = new MemoryStream(bytes))
                {
                    return(new BinaryFormatter().Deserialize(ms));
                }

            case SerializedType.CompressedByteArray:
                return(DeSerialize(decompress(bytes), SerializedType.ByteArray));

            case SerializedType.CompressedString:
                return(DeSerialize(decompress(bytes), SerializedType.String));

            case SerializedType.CompressedObject:
                return(DeSerialize(decompress(bytes), SerializedType.Object));

            case SerializedType.ByteArray:
            default:
                return(bytes);
            }
        }
Esempio n. 4
0
 public void SetUp()
 {
     using (var stream = TestDataHelper.OpenResource("Text.list_of_values.vdf"))
     {
         data = KVSerializer.Deserialize <SerializedType>(stream);
     }
 }
        // do not use directly in migration function
        static SerializedProperty FindBase(SerializedObject material, SerializedType type)
        {
            var propertyBase = material.FindProperty("m_SavedProperties");

            switch (type)
            {
            case SerializedType.Boolean:
            case SerializedType.Integer:
            case SerializedType.Float:
                propertyBase = propertyBase.FindPropertyRelative("m_Floats");
                break;

            case SerializedType.Color:
            case SerializedType.Vector:
                propertyBase = propertyBase.FindPropertyRelative("m_Colors");
                break;

            case SerializedType.Texture:
                propertyBase = propertyBase.FindPropertyRelative("m_TexEnvs");
                break;

            default:
                throw new ArgumentException($"Unknown SerializedType {type}");
            }

            return(propertyBase);
        }
Esempio n. 6
0
        // do not use directly in migration function
        static bool TryFindProperty(SerializedObject material, string propertyName, SerializedType type, out SerializedProperty property, out int indexOf, out SerializedProperty propertyBase)
        {
            propertyBase = FindBase(material, type);

            property = null;
            int maxSearch = propertyBase.arraySize;

            indexOf = 0;
            for (; indexOf < maxSearch; ++indexOf)
            {
                property = propertyBase.GetArrayElementAtIndex(indexOf);
                if (property.FindPropertyRelative("first").stringValue == propertyName)
                {
                    break;
                }
            }

            if (indexOf == maxSearch)
            {
                return(false);
            }

            property = property.FindPropertyRelative("second");
            return(true);
        }
Esempio n. 7
0
 public Argument_v1(string name, SerializedType type, SerializedKind kind, bool outParameter)
 {
     Name = name;
     Type = type;
     Kind = kind;
     OutParameter = outParameter;
 }
 public DerivedType(System.Type baseType, System.Type derivedType)
 {
     if (derivedType.IsSubclassOf(baseType))
     {
         _baseType  = new SerializedType(baseType);
         _typeValue = new SerializedType(derivedType);
     }
 }
Esempio n. 9
0
 private static Argument_v1 Arg(string name, SerializedType sType)
 {
     return(new Argument_v1
     {
         Name = name,
         Type = sType,
     });
 }
Esempio n. 10
0
 public void AddDecoratorDrawerHandler(SerializedType drawerReference)
 {
     if (decoratorDrawerHandlers == null)
     {
         decoratorDrawerHandlers = new List <SerializedType>();
     }
     decoratorDrawerHandlers.Add(drawerReference);
 }
Esempio n. 11
0
 static SerializedProperty FindBase(SerializedObject material, SerializedType type)
 {
     if (!TryFindBase(material, type, out var propertyBase))
     {
         throw new ArgumentException($"Unknown SerializedType {type}");
     }
     return(propertyBase);
 }
Esempio n. 12
0
 private static MemberPointer_v1 NearPtr(SerializedType type)
 {
     return(new MemberPointer_v1
     {
         Size = 2,
         MemberType = type,
     });
 }
Esempio n. 13
0
 public void AddPropertyDrawerHandler(SerializedType drawerReference)
 {
     if (propertyDrawerHandlers == null)
     {
         propertyDrawerHandlers = new List <SerializedType>();
     }
     propertyDrawerHandlers.Add(drawerReference);
 }
Esempio n. 14
0
 public void AddCollectionDrawerHandler(SerializedType drawerReference)
 {
     if (collectionDrawerHandlers == null)
     {
         collectionDrawerHandlers = new List <SerializedType>();
     }
     collectionDrawerHandlers.Add(drawerReference);
 }
Esempio n. 15
0
 public void AddTargetTypeDrawerHandler(SerializedType drawerReference)
 {
     if (targetTypeDrawerHandlers == null)
     {
         targetTypeDrawerHandlers = new List <SerializedType>();
     }
     targetTypeDrawerHandlers.Add(drawerReference);
 }
Esempio n. 16
0
 private Argument_v1 StackArg(SerializedType type, string name)
 {
     return(new Argument_v1(
                name,
                type,
                new StackVariable_v1(),
                false));
 }
Esempio n. 17
0
 private void Given_Sig(SerializedType ret, params Argument_v1 [] args)
 {
     ssig = new SerializedSignature
     {
         ReturnValue = new Argument_v1 {
             Type = ret
         }
     };
 }
        public override ParameterReference GetParameter(string paramName, SerializedType holdType)
        {
            if (ParametrizedProperties.TryGetValue(paramName, out var property))
            {
                return(property.Parameter);
            }

            return(null);
        }
        public static BaseTypeConverter ForSerializedType(SerializedType type)
        {
            if (type == SerializedType.Null)
            {
                return(NullConverter);
            }

            return(_converters.First(x => x.Value.Type == type).Value);
        }
Esempio n. 20
0
        public static BaseTypeConverter ForSerializedType(SerializedType type)
        {
            if (Converters.TryGetValue(type, out BaseTypeConverter converter))
            {
                return(converter);
            }

            throw new SerializationException($"Unable to find find a converter for type {type}");
        }
Esempio n. 21
0
        public T Deserialize <T>(byte[] bytes)
        {
            var stream = new DeserializationStream(bytes);

            SerializedType deserializedType = stream.ReadSerializedType();

            if (deserializedType == SerializedType.Null)
            {
                return(default);
        public object GetValue(SerializedType serializedType)
        {
            if (_cachedValue != null)
            {
                return(_cachedValue);
            }

            return(GetValue(_value, serializedType));
        }
Esempio n. 23
0
        public void SetString(string value)
        {
            stringValue = value;

            values      = null;
            objectValue = null;

            type = SerializedType.String;
        }
 private void ResetReference()
 {
     m_SceneGuid = m_GameObjectGuid = null;
     m_SerializedComponentType = new SerializedType(null);
     m_ComponentIndex          = 0;
     m_AssetObject             = null;
     m_ReferencedObject        = null;
     m_Prefab = null;
 }
    public void Update(UnityEngine.Object newObject)
    {
        ResetInitialization();
        ResetReference();
        if (newObject == null)
        {
            SaveProperties();
            return;
        }

        SceneObjectGUIDComponent guidComponent = null;
        Component  component = null;
        GameObject go        = null;

        if (newObject is Component)
        {
            component                 = newObject as Component;
            go                        = component.gameObject;
            guidComponent             = go.GetComponent <SceneObjectGUIDComponent>();
            m_SerializedComponentType = new SerializedType(component.GetType());
            m_ComponentIndex          = Array.IndexOf(go.GetComponents(component.GetType()), component);
        }
        else if (newObject is GameObject)
        {
            go = newObject as GameObject;
            if (PrefabUtility.IsPartOfPrefabAsset(go))
            {
                m_Prefab = go;
                SaveProperties();
                return;
            }
            guidComponent = go.GetComponent <SceneObjectGUIDComponent>();
        }
        else
        {
            m_ReferencedObject = m_AssetObject = newObject;
            SaveProperties();
            return;
        }

        if (guidComponent == null)
        {
            guidComponent = go.AddComponent <SceneObjectGUIDComponent>();
            Undo.RegisterCreatedObjectUndo(guidComponent, "Created GUID component");
        }

        m_GameObjectGuid = guidComponent.id;
        m_SceneGuid      = GetSceneId(go);
        if (string.IsNullOrEmpty(m_SceneGuid))
        {
            Debug.LogError("The scene needs to be saved");
            return;
        }

        SaveProperties();
    }
        protected bool IsReal(SerializedType sType)
        {
            var prim = sType as PrimitiveType_v1;

            if (prim == null)
            {
                return(false);
            }
            return(prim.Domain == Domain.Real);
        }
Esempio n. 27
0
    private void AddNewParam(SerializedType type)
    {
        string typename  = KnownType.GetDisplayedName(type.Type);
        string paramName = StringUtils.MakeUnique($"New {typename}", Parameters.Select(p => p.Name));

        Parameters.Add
        (
            new Parameter(type, paramName)
        );
    }
        private void AddNewParam(SerializedType type, List <Framework.Parameter> list)
        {
            string typename  = KnownType.GetDisplayedName(type.Type);
            string paramName = StringUtils.MakeUnique($"New {typename}", list.Select(p => p.Name));

            list.Add
            (
                new Framework.Parameter(type, paramName)
            );
        }
Esempio n. 29
0
 private SerializedType Qualify(SerializedType t, Qualifier q)
 {
     if (q == Qualifier.None)
     {
         return(t);
     }
     return(new QualifiedType_v1 {
         DataType = t, Qualifier = q
     });
 }
Esempio n. 30
0
 private Argument_v1 FpuArg(SerializedType type, string name)
 {
     return(new Argument_v1(
                name,
                type,
                new Register_v1 {
         Name = name
     },
                false));
 }
Esempio n. 31
0
 private Argument_v1 FpuArg(SerializedType type, string name)
 {
     return(new Argument_v1(
                name,
                type,
                new FpuStackVariable_v1 {
         ByteSize = 8
     },
                false));
 }
Esempio n. 32
0
        protected override void OnGUISafe(Rect position, SerializedProperty property, GUIContent label)
        {
            var refAttribute = Attribute;
            var refProperty  = property.FindPropertyRelative("classReference");

            //validate serialized data
            if (refAttribute == null || refAttribute.AssemblyType == null)
            {
                EditorGUI.PropertyField(position, property, label);
                return;
            }

            var refType   = !string.IsNullOrEmpty(refProperty.stringValue) ? Type.GetType(refProperty.stringValue) : null;
            var refTypes  = new List <Type>();
            var refLabels = new List <string>()
            {
                "<None>"
            };
            var index = -1;

            //get stored types if possible or create new item
            if (!filteredTypes.TryGetValue(refAttribute.AssemblyType, out refTypes))
            {
                refTypes = filteredTypes[refAttribute.AssemblyType] = refAttribute.GetFilteredTypes();
            }
            else
            {
                refTypes = filteredTypes[refAttribute.AssemblyType];
            }

            //create labels from filtered types
            for (int i = 0; i < refTypes.Count; i++)
            {
                var menuType  = refTypes[i];
                var menuLabel = FormatGroupedTypeName(menuType, refAttribute.Grouping);

                if (menuType == refType)
                {
                    index = i;
                }

                refLabels.Add(menuLabel);
            }

            //draw the reference property
            label = EditorGUI.BeginProperty(position, label, property);
            label = property.name != "data" ? label : GUIContent.none;
            //draw the proper label field
            position = EditorGUI.PrefixLabel(position, label);

            index = EditorGUI.Popup(position, index + 1, refLabels.ToArray());
            //get the correct class reference, index = 0 is reserved to <None> type
            refProperty.stringValue = index >= 1 ? SerializedType.GetClassReference(refTypes[index - 1]) : "";
            EditorGUI.EndProperty();
        }
Esempio n. 33
0
 public static object DeSerialize(byte[] bytes, SerializedType type)
 {
     switch (type)
     {
         case SerializedType.String:
             return Encoding.UTF8.GetString(bytes);
         case SerializedType.Datetime:
             return new DateTime(BitConverter.ToInt64(bytes, 0));
         case SerializedType.Bool:
             return bytes[0] == 1;
         case SerializedType.Byte:
             return bytes[0];
         case SerializedType.Short:
             return BitConverter.ToInt16(bytes, 0);
         case SerializedType.UShort:
             return BitConverter.ToUInt16(bytes, 0);
         case SerializedType.Int:
             return BitConverter.ToInt32(bytes, 0);
         case SerializedType.UInt:
             return BitConverter.ToUInt32(bytes, 0);
         case SerializedType.Long:
             return BitConverter.ToInt64(bytes, 0);
         case SerializedType.ULong:
             return BitConverter.ToUInt64(bytes, 0);
         case SerializedType.Float:
             return BitConverter.ToSingle(bytes, 0);
         case SerializedType.Double:
             return BitConverter.ToDouble(bytes, 0);
         case SerializedType.Object:
             using (MemoryStream ms = new MemoryStream(bytes))
             {
                 return new BinaryFormatter().Deserialize(ms);
             }
         case SerializedType.CompressedByteArray:
             return DeSerialize(decompress(bytes), SerializedType.ByteArray);
         case SerializedType.CompressedString:
             return DeSerialize(decompress(bytes), SerializedType.String);
         case SerializedType.CompressedObject:
             return DeSerialize(decompress(bytes), SerializedType.Object);
         case SerializedType.ByteArray:
         default:
             return bytes;
     }
 }
 private Argument_v1 FpuArg(SerializedType type, string name)
 {
     return new Argument_v1(
         name,
         type,
         new Register_v1 { Name = name },
         false);
 }
 private Argument_v1 RegArg(SerializedType type, string regName)
 {
     return new Argument_v1
     {
         Type = type,
         Kind = new Register_v1 { Name = regName },
         Name = regName
     };
 }
Esempio n. 36
0
 protected bool IsReal(SerializedType sType)
 {
     var prim = sType as PrimitiveType_v1;
     if (prim == null)
         return false;
     return prim.Domain == Domain.Real;
 }
Esempio n. 37
0
        public object Deserialize(EndianAwareBinaryReader reader, SerializedType serializedType, int? length = null)
        {
            int? effectiveLength = null;

            if (length != null)
                effectiveLength = length.Value;
            else if (TypeNode.FieldLengthBinding != null)
            {
                object lengthValue = TypeNode.FieldLengthBinding.GetValue(this);
                effectiveLength = Convert.ToInt32(lengthValue);
            }
            else if (TypeNode.FieldCountBinding != null)
            {
                object countValue = TypeNode.FieldCountBinding.GetValue(this);
                effectiveLength = Convert.ToInt32(countValue);
            }
            else if (serializedType == SerializedType.ByteArray || serializedType == SerializedType.SizedString || serializedType == SerializedType.NullTerminatedString)
            {
                // try to get bounded length from limiter
                var baseStream = (StreamLimiter) reader.BaseStream;

                checked
                {
                    effectiveLength = (int) (baseStream.AvailableForReading);
                }
            }

            object value;
            switch (serializedType)
            {
                case SerializedType.Int1:
                    value = reader.ReadSByte();
                    break;
                case SerializedType.UInt1:
                    value = reader.ReadByte();
                    break;
                case SerializedType.Int2:
                    value = reader.ReadInt16();
                    break;
                case SerializedType.UInt2:
                    value = reader.ReadUInt16();
                    break;
                case SerializedType.Int4:
                    value = reader.ReadInt32();
                    break;
                case SerializedType.UInt4:
                    value = reader.ReadUInt32();
                    break;
                case SerializedType.Int8:
                    value = reader.ReadInt64();
                    break;
                case SerializedType.UInt8:
                    value = reader.ReadUInt64();
                    break;
                case SerializedType.Float4:
                    value = reader.ReadSingle();
                    break;
                case SerializedType.Float8:
                    value = reader.ReadDouble();
                    break;
                case SerializedType.ByteArray:
                {
                    Debug.Assert(effectiveLength != null, "effectiveLength != null");
                    value = reader.ReadBytes(effectiveLength.Value);
                    break;
                }
                case SerializedType.NullTerminatedString:
                {
                    Debug.Assert(effectiveLength != null, "effectiveLength != null");
                    byte[] data = ReadNullTerminatedString(reader, effectiveLength.Value).ToArray();

                    value = Encoding.GetString(data, 0, data.Length);
                    break;
                }
                case SerializedType.SizedString:
                {
                    Debug.Assert(effectiveLength != null, "effectiveLength != null");
                    byte[] data = reader.ReadBytes(effectiveLength.Value);
                    value = Encoding.GetString(data, 0, data.Length).TrimEnd('\0');
                    break;
                }
                case SerializedType.LengthPrefixedString:
                {
                    value = reader.ReadString();
                    break;
                }

                default:
                    throw new NotSupportedException();
            }

            return value;
        }
Esempio n. 38
0
        public void Serialize(EndianAwareBinaryWriter writer, object value, SerializedType serializedType,
            int? length = null)
        {
            if (value == null)
            {
                /* In the special case of sized strings, don't allow nulls */
                if (serializedType == SerializedType.SizedString)
                    value = string.Empty;
                else return;
            }

            int? constLength = null;
            long? maxLength = null;

            var typeParent = TypeNode.Parent as TypeNode;

            if (length != null)
                constLength = length.Value;
            else if (TypeNode.FieldLengthBinding != null && TypeNode.FieldLengthBinding.IsConst)
            {
                constLength = Convert.ToInt32(TypeNode.FieldLengthBinding.ConstValue);
            }
            else if (typeParent != null && typeParent.ItemLengthBinding != null && typeParent.ItemLengthBinding.IsConst)
            {
                constLength = Convert.ToInt32(typeParent.ItemLengthBinding.ConstValue);
            }
            else if (TypeNode.FieldCountBinding != null && TypeNode.FieldCountBinding.IsConst)
            {
                constLength = Convert.ToInt32(TypeNode.FieldCountBinding.ConstValue);
            }
            else if (serializedType == SerializedType.ByteArray || serializedType == SerializedType.SizedString || serializedType == SerializedType.NullTerminatedString)
            {
                // try to get bounded length from limiter
                var baseStream = (StreamLimiter) writer.BaseStream;
                maxLength = baseStream.AvailableForWriting;
            }

            switch (serializedType)
            {
                case SerializedType.Int1:
                    writer.Write(Convert.ToSByte(value));
                    break;
                case SerializedType.UInt1:
                    writer.Write(Convert.ToByte(value));
                    break;
                case SerializedType.Int2:
                    writer.Write(Convert.ToInt16(value));
                    break;
                case SerializedType.UInt2:
                    writer.Write(Convert.ToUInt16(value));
                    break;
                case SerializedType.Int4:
                    writer.Write(Convert.ToInt32(value));
                    break;
                case SerializedType.UInt4:
                    writer.Write(Convert.ToUInt32(value));
                    break;
                case SerializedType.Int8:
                    writer.Write(Convert.ToInt64(value));
                    break;
                case SerializedType.UInt8:
                    writer.Write(Convert.ToUInt64(value));
                    break;
                case SerializedType.Float4:
                    writer.Write(Convert.ToSingle(value));
                    break;
                case SerializedType.Float8:
                    writer.Write(Convert.ToDouble(value));
                    break;
                case SerializedType.ByteArray:
                {
                    var data = (byte[]) value;
                    writer.Write(data, 0, data.Length);
                    break;
                }
                case SerializedType.NullTerminatedString:
                {
                    byte[] data = Encoding.GetBytes(value.ToString());

                    if (constLength != null)
                        Array.Resize(ref data, constLength.Value - 1);

                    if(maxLength != null && data.Length > maxLength)
                        Array.Resize(ref data, (int)maxLength.Value - 1);

                    writer.Write(data);
                    writer.Write((byte) 0);
                    break;
                }
                case SerializedType.SizedString:
                {
                    byte[] data = Encoding.GetBytes(value.ToString());

                    if (constLength != null)
                        Array.Resize(ref data, constLength.Value);

                    if (maxLength != null && data.Length > maxLength)
                        Array.Resize(ref data, (int)maxLength.Value);

                    writer.Write(data);

                    break;
                }
                case SerializedType.LengthPrefixedString:
                {
                    if(constLength != null)
                        throw new NotSupportedException("Length-prefixed strings cannot have a const length.");

                    writer.Write(value.ToString());
                    break;
                }

                default:
                    throw new NotSupportedException();
            }
        }
Esempio n. 39
0
 public void Serialize(Stream stream, object value, SerializedType serializedType, int? length = null)
 {
     var writer = new EndianAwareBinaryWriter(stream, Endianness);
     Serialize(writer, value, serializedType, length);
 }
Esempio n. 40
0
        public GlobalDataItem_v2 ModifyUserGlobal(Address address, SerializedType dataType, string name)
        {
            GlobalDataItem_v2 gbl;
            if (!User.Globals.TryGetValue(address, out gbl))
            {
                gbl = new GlobalDataItem_v2()
                {
                    Address = address.ToString(),
                };
                User.Globals.Add(address, gbl);
            }

            gbl.Name = name;
            gbl.DataType = dataType;

            this.ImageMap.RemoveItem(address);

            var tlDeser = CreateTypeLibraryDeserializer();
            var dt = dataType.Accept(tlDeser);
            var size = GetDataSize(address, dt);
            var item = new ImageMapItem
            {
                Address = address,
                Size = size,
                Name = name,
                DataType = dt,
            };
            if (size != 0)
                this.ImageMap.AddItemWithSize(address, item);
            else
                this.ImageMap.AddItem(address, item);

            return gbl;
        }
Esempio n. 41
0
 private Argument_v1 StackArg(SerializedType type, string name)
 {
     return new Argument_v1(
         name,
         type,
         new StackVariable_v1(),
         false);
 }
Esempio n. 42
0
 public static byte[] Serialize(object value, out SerializedType type, uint compressionThreshold)
 {
     byte[] bytes;
     if (value is byte[])
     {
         bytes = (byte[])value;
         type = SerializedType.ByteArray;
         if (bytes.Length > compressionThreshold)
         {
             bytes = compress(bytes);
             type = SerializedType.CompressedByteArray;
         }
     }
     else if (value is string)
     {
         bytes = Encoding.UTF8.GetBytes((string)value);
         type = SerializedType.String;
         if (bytes.Length > compressionThreshold)
         {
             bytes = compress(bytes);
             type = SerializedType.CompressedString;
         }
     }
     else if (value is DateTime)
     {
         bytes = BitConverter.GetBytes(((DateTime)value).Ticks);
         type = SerializedType.Datetime;
     }
     else if (value is bool)
     {
         bytes = new byte[] { (byte)((bool)value ? 1 : 0) };
         type = SerializedType.Bool;
     }
     else if (value is byte)
     {
         bytes = new byte[] { (byte)value };
         type = SerializedType.Byte;
     }
     else if (value is short)
     {
         bytes = BitConverter.GetBytes((short)value);
         type = SerializedType.Short;
     }
     else if (value is ushort)
     {
         bytes = BitConverter.GetBytes((ushort)value);
         type = SerializedType.UShort;
     }
     else if (value is int)
     {
         bytes = BitConverter.GetBytes((int)value);
         type = SerializedType.Int;
     }
     else if (value is uint)
     {
         bytes = BitConverter.GetBytes((uint)value);
         type = SerializedType.UInt;
     }
     else if (value is long)
     {
         bytes = BitConverter.GetBytes((long)value);
         type = SerializedType.Long;
     }
     else if (value is ulong)
     {
         bytes = BitConverter.GetBytes((ulong)value);
         type = SerializedType.ULong;
     }
     else if (value is float)
     {
         bytes = BitConverter.GetBytes((float)value);
         type = SerializedType.Float;
     }
     else if (value is double)
     {
         bytes = BitConverter.GetBytes((double)value);
         type = SerializedType.Double;
     }
     else
     {
         //Object
         using (MemoryStream ms = new MemoryStream())
         {
             new BinaryFormatter().Serialize(ms, value);
             bytes = ms.ToArray();
             type = SerializedType.Object;
             if (bytes.Length > compressionThreshold)
             {
                 bytes = compress(bytes);
                 type = SerializedType.CompressedObject;
             }
         }
     }
     return bytes;
 }
Esempio n. 43
0
 private Argument_v1 FpuArg(SerializedType type, string name)
 {
     return new Argument_v1(
         name, 
         type, 
         new FpuStackVariable_v1 { ByteSize = 8 },
         false);
 }
Esempio n. 44
0
 private static Argument_v1 Arg(string name, SerializedType sType)
 {
     return new Argument_v1
     {
         Name = name,
         Type = sType,
     };
 }
Esempio n. 45
0
 public object Deserialize(StreamLimiter stream, SerializedType serializedType, int? length = null)
 {
     var reader = new EndianAwareBinaryReader(stream, Endianness);
     return Deserialize(reader, serializedType, length);
 }
 private Argument_v1 Arg(string argName, SerializedType sType)
 {
     return new Argument_v1(argName, sType, null, false);
 }
 private PointerType_v1 Ptr(SerializedType sType)
 {
     return new PointerType_v1 { DataType = sType, PointerSize = 4 };
 }