public void PushMessages(IEnumerable <CommandMessage> messages)
        {
            if (_disposed)
            {
                throw new ObjectDisposedException(this.GetType().FullName);
            }

            if (_protocolVersion == ProtocolVersion.Version1)
            {
                Stream stream = new BufferStream(_bufferManager);

                try
                {
                    var message = new CommandsMessage();
                    message.CommandMessages.AddRange(messages);

                    stream = new JoinStream(stream, message.Export(_bufferManager));

                    _connection.Send(stream, _sendTimeSpan);
                    _lastSendTime = DateTime.UtcNow;
                }
                catch (ConnectionException)
                {
                    this.OnClose(new EventArgs());
                }
                finally
                {
                    stream.Close();
                }
            }
            else
            {
                throw new ConnectionManagerException();
            }
        }
Exemple #2
0
 public void Unir(string fichero, string dirDest, JoinInfo info)
 {
     byte[] buffer = new byte[Consts.BUFFER_LENGTH];
     int leidos = 0;
     long transferidos = 0;
     OnProgress (0, info.Length);
     Stream fos = UtilidadesFicheros.CreateWriter (dirDest + Path.DirectorySeparatorChar + info.OriginalFile);
     Stream fis = new JoinStream (info);
     while ((leidos = fis.Read(buffer, 0, buffer.Length)) > 0) {
         transferidos += leidos;
         fos.Write (buffer, 0, leidos);
         OnProgress (transferidos, info.Length);
     }
     fis.Close ();
     fos.Close ();
 }