示例#1
0
 public FieldViewModel(TypeNode typeNode)
 {
     Name           = typeNode.Name;
     Type           = typeNode.Type.Name;
     TypeNode       = typeNode;
     SerializedType = typeNode.GetSerializedType();
 }
示例#2
0
        public override void DeserializeOverride(StreamLimiter stream, EventShuttle eventShuttle)
        {
            // try to get bounded length from limiter
            _remainder = stream.Remainder;

            object value = Deserialize(stream, TypeNode.GetSerializedType());

            Value = ConvertToFieldType(value);
        }
        internal override void DeserializeOverride(BoundedStream stream, EventShuttle eventShuttle)
        {
            if (EndOfStream(stream))
            {
                if (TypeNode.IsNullable)
                {
                    return;
                }

                throw new EndOfStreamException();
            }

            Deserialize(stream, TypeNode.GetSerializedType());
        }
示例#4
0
        public override int GetFixedSize()
        {
            if (TypeNode.IsNullableType)
            {
                return(0);
            }
            if (TypeNode.SerializeWhenBindings != null)
            {
                return(0);
            }
            if (TypeNode.BitSizeAttribute != null)
            {
                return(0);
            }

            switch (TypeNode.GetSerializedType())
            {
            case SerializedType.Int1:
            case SerializedType.UInt1:
                return(1);

            case SerializedType.Int2:
            case SerializedType.UInt2:
                return(2);

            case SerializedType.Int4:
            case SerializedType.UInt4:
            case SerializedType.Float4:
                return(4);

            case SerializedType.Int8:
            case SerializedType.UInt8:
            case SerializedType.Float8:
                return(8);

            case SerializedType.ByteArray:
            case SerializedType.SizedString:
                var typeParent = TypeNode.Parent as TypeNode;
                return(GetConstantLength(typeParent));

            default:
                return(0);
            }
        }
示例#5
0
 protected override void SerializeOverride(IBitStream stream, EventShuttle eventShuttle)
 {
     Serialize(stream, BoundValue, TypeNode.GetSerializedType());
 }
 internal override void SerializeOverride(BoundedStream stream, EventShuttle eventShuttle)
 {
     Serialize(stream, BoundValue, TypeNode.GetSerializedType());
 }