public void ThrowsExceptionOnReadWhenPathDoesntExist() { using var reader = new MemoryMappedFileReader <TestStruct>(FileName); Assert.Throws <FileNotFoundException>(() => reader.Read()); WithMMFile(FileName, new TestStruct(), (_, _) => { // Verify that file is opened when available reader.Read(); }); }
public void CanReadAMemoryMappedStruct() { var expectedStruct = new TestStruct() { Field = SequentialByteArray(FieldSize) }; WithMMFile(FileName, expectedStruct, (path, writtenData) => { using (var reader = new MemoryMappedFileReader <TestStruct>(path)) { Assert.Equal(writtenData.Field, reader.Read().Field); // Verify that the same data can be read more than once Assert.Equal(writtenData.Field, reader.Read().Field); } }); }
public ISourceBlock <Pipeline.Telemetry.V0.IGameTelemetry> CreateTelemetrySource() { var mmReader = new MemoryMappedFileReader <Contrib.Data.Shared>(Contrib.Constant.SharedMemoryName); var telemetry = new Telemetry(); return(PollingSource.Create <Pipeline.Telemetry.V0.IGameTelemetry>(_config.PollingInterval, () => telemetry.Transform(mmReader.Read()))); }