Пример #1
0
        public static Int32 GetTypeLength(Xml.MessageField xMessageField)
        {
            MessageFieldDataType dataType = ToDataType(xMessageField.Type);
            int typeLength = GetTypeLength(dataType);

            return(typeLength);
        }
        private static string GetReadMethodName(MessageFieldDataType dataType)
        {
            switch (dataType)
            {
            case MessageFieldDataType.Float32: return("ReadSingle");

            case MessageFieldDataType.Int8: return("ReadSByte");

            case MessageFieldDataType.UInt8: return("ReadByte");

            case MessageFieldDataType.Int16: return("ReadInt16");

            case MessageFieldDataType.UInt16: return("ReadUInt16");

            case MessageFieldDataType.Int32: return("ReadInt32");

            case MessageFieldDataType.UInt32: return("ReadUInt32");

            case MessageFieldDataType.Int64: return("ReadInt64");

            case MessageFieldDataType.UInt64: return("ReadUInt64");

            case MessageFieldDataType.Char: return("ReadChar");

            case MessageFieldDataType.Double: return("ReadDouble");

            default:
                return(null);
            }
        }
Пример #3
0
        public static Type GetType(MessageFieldDataType dataType)
        {
            switch (dataType)
            {
            case MessageFieldDataType.Float32:
                return(typeof(float));

            case MessageFieldDataType.Int8:
                return(typeof(SByte));

            case MessageFieldDataType.UInt8:
                return(typeof(byte));

            case MessageFieldDataType.Int16:
                return(typeof(Int16));

            case MessageFieldDataType.UInt16:
                return(typeof(UInt16));

            case MessageFieldDataType.Int32:
                return(typeof(Int32));

            case MessageFieldDataType.UInt32:
                return(typeof(UInt32));

            case MessageFieldDataType.Int64:
                return(typeof(Int64));

            case MessageFieldDataType.UInt64:
                return(typeof(UInt64));

            case MessageFieldDataType.Char:
                return(typeof(char));

            case MessageFieldDataType.Double:
                return(typeof(double));

            default:
                return(null);
            }
        }
Пример #4
0
        public static Int32 GetTypeLength(MessageFieldDataType type)
        {
            switch (type)
            {
            case MessageFieldDataType.Float32:
                return(4);

            case MessageFieldDataType.Int8:
                return(1);

            case MessageFieldDataType.UInt8:
                return(1);

            case MessageFieldDataType.Int16:
                return(2);

            case MessageFieldDataType.UInt16:
                return(2);

            case MessageFieldDataType.Int32:
                return(4);

            case MessageFieldDataType.UInt32:
                return(4);

            case MessageFieldDataType.Int64:
                return(8);

            case MessageFieldDataType.UInt64:
                return(8);

            case MessageFieldDataType.Char:
                return(1);

            case MessageFieldDataType.Double:
                return(8);

            default:
                return(4);
            }
        }
Пример #5
0
        private Data.MessageFieldType GetFieldType(Xml.MessageField xMessageField)
        {
            MessageFieldDataType dataType = TypeHelper.ToDataType(xMessageField.Type);
            int typeLength = TypeHelper.GetTypeLength(dataType);

            bool isArray = TypeHelper.IsArray(xMessageField.Type);

            if (isArray)
            {
                Int32 arrayLength = TypeHelper.GetArraySize(xMessageField.Type);
                return(new Data.MessageFieldType(dataType, typeLength, arrayLength));
            }

            bool isNotNullEnum = !String.IsNullOrWhiteSpace(xMessageField.Enum);

            if (isNotNullEnum)
            {
                Data.Enum vEnum = _enumByXmlEnumName[xMessageField.Enum];
                return(new Data.MessageFieldType(dataType, typeLength, vEnum));
            }

            return(new Data.MessageFieldType(dataType, typeLength));
        }
Пример #6
0
 public MessageFieldType(MessageFieldDataType dataType, int typeLength, int arrayLength)
     : this(FieldType.Array, dataType, typeLength)
 {
     ArrayLength = arrayLength;
 }
Пример #7
0
 public MessageFieldType(MessageFieldDataType dataType, int typeLength, Enum pEnum)
     : this(FieldType.Enum, dataType, typeLength)
 {
     Enum = pEnum;
 }
Пример #8
0
 public MessageFieldType(MessageFieldDataType dataType, int typeLength)
     : this(FieldType.Primitive, dataType, typeLength)
 {
 }
Пример #9
0
 protected MessageFieldType(FieldType fieldType, MessageFieldDataType dataType, int typeLength)
 {
     FieldType  = fieldType;
     DataType   = dataType;
     TypeLength = typeLength;
 }