Esempio n. 1
0
 void OpenFile()
 {
     stream.DisableWriting();
     Libeio.Libeio.open(fileName, OpenFlags.O_RDONLY, FilePermissions.ALLPERMS, (fd, err) => {
         if (fd == -1)
         {
             OnComplete(-1, err);
         }
         else
         {
             this.fd = fd;
             stream.EnableWriting();
             HandleWrite(stream);
         }
     });
 }
Esempio n. 2
0
 protected void SendNextBlock()
 {
     stream.DisableWriting();
     Libeio.read(fd, transferBuffer, position, transferBuffer.Length, (len, buf, err) =>
     {
         if (position == Length)
         {
             OnComplete(len, err);
         }
         if (len > 0)
         {
             position          += len;
             currentPrefixBlock = new SendBytesOperation(new[] {
                 new ByteBuffer(transferBuffer, 0, len)
             }, null);
             currentPrefixBlock.BeginWrite(stream);
         }
         else
         {
             OnComplete(len, err);
         }
         stream.EnableWriting();
     });
 }