public TypeTable(DataTypeID type, int itemSize, List <DataType> dataTable, Version version) { Type = type; ItemSize = itemSize; ItemAddress = 0; DataTable = dataTable; return; }
public override int GetHashCode() { unchecked { int hashCode = DataTypeID != null?DataTypeID.GetHashCode() : 0; hashCode = (hashCode * 397) ^ (Name != null ? Name.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Fields != null ? Fields.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (int)Type; return(hashCode); } }
internal override void Read(BinaryReader reader) { Type = (DataTypeID)reader.ReadInt32(); ItemSize = reader.ReadInt32(); int dataCount = reader.ReadInt32(); ItemAddress = reader.ReadInt32(); DataTable = new List <DataType>(); long currentPos = reader.FTell(); reader.FSeek(ItemAddress); for (int i = 0; i < dataCount; i++) { DataType Entry = TypeFactory.CreateDataType(Type, reader, Version, ItemSize); DataTable.Add(Entry); } reader.FSeek(currentPos); }
public static Type GetDataType(DataTypeID type, FormatVersion version) { Type dataType = type switch { DataTypeID.CutInfo => typeof(CutInfo), DataTypeID.Name => typeof(Name), DataTypeID.Frame => typeof(Frame), DataTypeID.Message => typeof(Message), _ => typeof(Unknown) }; if (dataType.HasInterface(typeof(IVersioningHandler))) { MethodInfo method = dataType.GetMethod("GetTypeFromVersion", BindingFlags.Static | BindingFlags.Public); object[] args = { version }; dataType = (Type)method.Invoke(null, args); } return(dataType); } }
public static DataType CreateDataType(DataTypeID type, BinaryReader reader, FormatVersion version, int size = 0) { Type dataType = GetDataType(type, version); if (dataType.HasInterface(typeof(IVariableSize))) { if (dataType == typeof(Unknown)) { return((DataType)Activator.CreateInstance(dataType, reader, size, type)); } return((DataType)Activator.CreateInstance(dataType, reader, size)); } else if (dataType.HasInterface(typeof(IVersioning))) { return((DataType)Activator.CreateInstance(dataType, reader, version)); } else { return((DataType)Activator.CreateInstance(dataType, reader)); } }
public void Encode(Stream outputStream) { if (outputStream == null || !outputStream.CanWrite) { return; } DataTypeID.Encode(outputStream); Name.Encode(outputStream); int fieldLength = -1; if (Fields != null) { fieldLength = Fields.Count; } BaseType.WriteToStream(outputStream, BitConverter.GetBytes(fieldLength)); for (int i = 0; i < fieldLength; i++) { // ReSharper disable once PossibleNullReferenceException Fields[i] .Encode(outputStream); } outputStream.WriteByte((byte)Type); }
public void SetType(DataTypeID type) { _typeID = type; }
public Unknown(BinaryReader reader, int size, DataTypeID type) { DataSize = size; Open(reader); _typeID = type; }
public Unknown(Stream stream, int size, DataTypeID type, bool leaveOpen = false) { DataSize = size; Open(stream, leaveOpen); _typeID = type; }
public Unknown(string path, int size, DataTypeID type) { DataSize = size; Open(path); _typeID = type; }
public Unknown(DataTypeID type) { _typeID = type; }
/// <summary> /// Determines whether the channel represents an array of numbers. /// </summary> public static bool IsNumericArray(this Cnl cnl) { return(cnl.DataLen > 1 && DataTypeID.IsNumeric(cnl.DataTypeID)); }
/// <summary> /// Determines whether the channel data type is string. /// </summary> public static bool IsString(this Cnl cnl) { return(DataTypeID.IsString(cnl.DataTypeID)); }
/// <summary> /// Determines whether the channel data type is numeric. /// </summary> public static bool IsNumeric(this Cnl cnl) { return(DataTypeID.IsNumeric(cnl.DataTypeID)); }
public bool HaveColumn(string columnName, string columnValue, out bool retValueMatched) { bool ret = false; bool valueMatched = false; if (columnName == "DataTypeID") { ret = true; if (DataTypeID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "DataTypeGUID") { ret = true; if (DataTypeGUID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "RevisionNo") { ret = true; if (RevisionNo.ToString() == columnValue) { valueMatched = true; } } if (columnName == "DataType") { ret = true; if (DataType.ToString() == columnValue) { valueMatched = true; } } if (columnName == "IsDefault") { ret = true; if (IsDefault.ToString() == columnValue) { valueMatched = true; } } if (columnName == "IsSystem") { ret = true; if (IsSystem.ToString() == columnValue) { valueMatched = true; } } if (columnName == "IsActive") { ret = true; if (IsActive.ToString() == columnValue) { valueMatched = true; } } if (columnName == "Sequence") { ret = true; if (Sequence.ToString() == columnValue) { valueMatched = true; } } retValueMatched = valueMatched; return(ret); }
public bool HaveColumn(string columnName, string columnValue, out bool retValueMatched) { bool ret = false; bool valueMatched = false; if (columnName == "DataID") { ret = true; if (DataID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "DataGUID") { ret = true; if (DataGUID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "RevisionNo") { ret = true; if (RevisionNo.ToString() == columnValue) { valueMatched = true; } } if (columnName == "UserID") { ret = true; if (UserID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "UserGUID") { ret = true; if (UserGUID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "CreatedDate") { ret = true; if (CreatedDate.ToString() == columnValue) { valueMatched = true; } } if (columnName == "LastUpdateDate") { ret = true; if (LastUpdateDate.ToString() == columnValue) { valueMatched = true; } } if (columnName == "ParentDataID") { ret = true; if (ParentDataID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "ParentDataGUID") { ret = true; if (ParentDataGUID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "DataTypeID") { ret = true; if (DataTypeID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "DataTypeGUID") { ret = true; if (DataTypeGUID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "DataValue") { ret = true; if (DataValue.ToString() == columnValue) { valueMatched = true; } } if (columnName == "DataRefTypeID") { ret = true; if (DataRefTypeID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "DataRefTypeGUID") { ret = true; if (DataRefTypeGUID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "DataRefID") { ret = true; if (DataRefID.ToString() == columnValue) { valueMatched = true; } } if (columnName == "IsActive") { ret = true; if (IsActive.ToString() == columnValue) { valueMatched = true; } } if (columnName == "IsDeleted") { ret = true; if (IsDeleted.ToString() == columnValue) { valueMatched = true; } } if (columnName == "Sequence") { ret = true; if (Sequence.ToString() == columnValue) { valueMatched = true; } } retValueMatched = valueMatched; return(ret); }
public static DataType CreateDataType(DataTypeID type, FormatVersion version) { Type dataType = GetDataType(type, version); return((DataType)Activator.CreateInstance(dataType)); }