Пример #1
0
 /// <summary>
 /// Старт записи в поток
 /// </summary>
 /// <param name="stream">Поток</param>
 /// <param name="bloc">Записываемый блок</param>
 /// <param name="streamExectContext">Контекст записи</param>
 public static void BeginWrite(this Stream stream, BinaryBloc bloc, IStreamExectContext streamExectContext) =>
 streamExectContext.Exect(bloc.Id, id => {
     new StreamState {
         Bloc    = bloc,
         Stream  = stream,
         BufSize = bloc.Buffer.Length,
         Context = streamExectContext
     }.BeginWrite(EndWrite);
 });
Пример #2
0
 /// <summary>
 /// Старт чтения потока
 /// </summary>
 /// <param name="stream">Источник</param>
 /// <param name="streamExectContext">контекст чтения</param>
 /// <param name="bufSize">Размер буфера чтения. Если не задан - то поблочное чтение, где размер блока это первые 4 байта</param>
 public static void BeginRead(this Stream stream, IStreamExectContext streamExectContext, int?bufSize = null) =>
 streamExectContext.Exect(streamExectContext.GetId(), id => {
     new StreamState {
         Bloc = new BinaryBloc {
             Id = id, Buffer = new byte[bufSize ?? stream.ReadInt()]
         },
         Stream  = stream,
         BufSize = bufSize,
         Context = streamExectContext
     }.BeginRead(EndRead);
 });