/// <summary> /// <para>Сохранить данные в двоичный поток</para> /// </summary> /// <param name="context">Контекст хранения двоичных данных</param> /// <param name="stream">Выходной поток</param> /// <returns>Состояние выполнения</returns> public void Store(IBinaryContext context, Stream stream) { OnBeforeLoadData?.Invoke(this); var t = Task.Run(() => StoreAsync(context, stream)); t.Wait(); OnAfterLoadData?.Invoke(this); }
/// <summary> /// <para>Загрузить данные из двоичного потока</para> /// </summary> /// <param name="context">Контекст хранения двоичных данных</param> /// <param name="stream">Входной поток</param> /// <returns>Состояние выполнения</returns> public void Load(IBinaryContext context, Stream stream) { OnBeforeLoadData?.Invoke(this); _Offset = stream.Position; var t = Task.Run(() => LoadAsync(context, stream)); t.Wait(); OnAfterLoadData?.Invoke(this); }
/// <inheritdoc/> public override async Task StoreAsync(IBinaryContext context, Stream stream) { await stream.StoreAsync(Value, context.IsLittleEndian); }
/// <inheritdoc/> public override async Task LoadAsync(IBinaryContext context, Stream stream) { Value = await stream.LoadUInt16Async(context.IsLittleEndian); }
/// <inheritdoc/> public override long GetSize(IBinaryContext context) { return(Size); }
public BinaryStringRepository(IBinaryContext context) { _context = context; }
/// <summary> /// <para>Сохранить данные в двоичный поток</para> /// </summary> /// <param name="context">Контекст хранения двоичных данных</param> /// <param name="stream">Выходной поток</param> /// <returns>Состояние выполнения</returns> public abstract Task StoreAsync(IBinaryContext context, Stream stream);
/// <summary> /// <para>Загрузить данные из двоичного потока</para> /// </summary> /// <param name="context">Контекст хранения двоичных данных</param> /// <param name="stream">Входной поток</param> /// <returns>Состояние выполнения</returns> public abstract Task LoadAsync(IBinaryContext context, Stream stream);
/// <summary> /// <para>Размер данных в заданном двоичном контексте</para> /// </summary> /// <param name="context">Контекст хранения двоичных данных</param> /// <returns>Размер данных</returns> public abstract long GetSize(IBinaryContext context);