private uint GetNumberOfEntries <T>(NumberOfEntriesType numberOfEntriesType, T numberOfEntriesName) { switch (numberOfEntriesType) { case NumberOfEntriesType.Byte: return(GetByte(numberOfEntriesName)); case NumberOfEntriesType.UShort: return(GetUShort(numberOfEntriesName)); case NumberOfEntriesType.UInt: return(GetUInt(numberOfEntriesName)); default: Debug.Fail(string.Format("Please add support for the missing type: {0}", Enum.GetName(typeof(NumberOfEntriesType), numberOfEntriesType))); return(0U); } }
/// <summary> /// return the length in bytes of the NumberOfEntriesType /// byte = 1, ushort = 2 and uint = 3 /// </summary> private static uint NumberOfEntriesTypeLength(NumberOfEntriesType numberOfEntriesType) { switch (numberOfEntriesType) { case NumberOfEntriesType.Byte: return(1); case NumberOfEntriesType.UShort: return(2); case NumberOfEntriesType.UInt: return(4); default: Debug.Fail(string.Format("Please add support for the missing type: {0}", Enum.GetName(typeof(NumberOfEntriesType), numberOfEntriesType))); return(0); } }
public void GetTable <T>(T tableName, T numberOfEntriesName, NumberOfEntriesType numberOfEntriesType, uint entrySize, Table <T, THeader, THeaderName, TParser> .CreateTableEntryDelegate createTableEntry, ulong bytesRemaining) { uint numberOfEntries = GetNumberOfEntries(numberOfEntriesType, numberOfEntriesName); GetTable(tableName, numberOfEntriesName, numberOfEntries, entrySize, createTableEntry, bytesRemaining - NumberOfEntriesTypeLength(numberOfEntriesType)); }