public bool WaitCompleted(OpaqueMessage msg) { Stream.TRACE("SYNCRO.WAIT"); syncro.WaitOne(); Stream.TRACE("SYNCRO.RESET"); syncro.Reset(); return(LastResult); }
public bool BeginPush(OpaqueMessage msg) { try { dst.Push(msg); return(true); } catch (Exception e) { STrace.Exception(GetType().FullName, e); return(false); } }
public bool BeginPush(OpaqueMessage msg) { msg.DestinationQueueName = DestinationQueueName; // calculando tamaño var data = GZip.SerializeAndCompress(msg); var datalength = data.GetLength(0); // enviando CHUNK var chunk_size = new byte[2]; var b = Convert.ToByte((byte)(datalength >> 8)); chunk_size[0] = b; chunk_size[1] = Convert.ToByte(datalength & 0xFF); Stream.Send(chunk_size, 2); // envia datos Stream.Send(data, datalength); return(true); }
public bool SendOpaqueMessageAck(OpaqueMessage msg, OpaqueMessageAck.Responses Response) { var ack = new OpaqueMessageAck() { LookupId = msg.Id, Response = Response }; // calculando tamaño var data = GZip.Serialize(ack); var datalength = data.GetLength(0); // enviando CHUNK var chunk_size = new byte[2]; var b = Convert.ToByte((byte)(datalength >> 8)); chunk_size[0] = b; chunk_size[1] = Convert.ToByte(datalength & 0xFF); Send(chunk_size, 2); // envia datos Send(data, datalength); return(true); }
public bool WaitCompleted(OpaqueMessage msg) { return(true); }
public bool BeginPush(OpaqueMessage msg) { try { msg.DestinationQueueName = DestinationQueueName; T.TRACE(FileTransferTraceLevel, "TcpInterQueueClient_V1_1[{0}]: Iniciando, cola_origen={1}, cola_destino={2}, tamaño={3}, label={4}", msg.Id, msg.SourceQueueName, msg.DestinationQueueName, msg.Length, msg.Label); var socket = new TcpClient(); socket.Connect(EndPoint); T.TRACE(FileTransferTraceLevel, "TcpInterQueueClient_V1_1[{0}]: conectado.", msg.Id); // calculando tamaño Stream strm = new MemoryStream(); var formatter = new BinaryFormatter(); formatter.Serialize(strm, msg, null); var datalength = Convert.ToInt16(strm.Length); // envia cabecera. socket.Client.Send(Encoding.ASCII.GetBytes("UIQP/1.1")); var chunk_size = new byte[2]; var b = Convert.ToByte((byte)(datalength >> 8)); chunk_size[0] = b; chunk_size[1] = Convert.ToByte(datalength & 0xFF); socket.Client.Send(chunk_size); T.TRACE(FileTransferTraceLevel, "TcpInterQueueClient_V1_1[{0}]: Cabeceras Enviadas. chunk_size={1}", msg.Id, datalength); // envia datos var databuffer = new byte[datalength]; strm.Seek(0, 0); strm.Read(databuffer, 0, datalength); var bytes_sent = socket.Client.Send(databuffer, datalength, SocketFlags.None); T.TRACE(FileTransferTraceLevel, "TcpInterQueueClient_V1_1[{0}]: Mensaje Enviado, {1} bytes.", msg.Id, bytes_sent); var ack = new byte[1]; try { if (socket.Client.Receive(ack, 0, 1, SocketFlags.None) == 1) { try { socket.Client.Shutdown(SocketShutdown.Send); socket.Client.Close(); } // ReSharper disable EmptyGeneralCatchClause catch // ReSharper restore EmptyGeneralCatchClause { } if (ack[0] == 'A') { T.TRACE(FileTransferTraceLevel, "TcpInterQueueClient_V1_1[{0}]: ACK Recibido", msg.Id); return(true); } T.TRACE(FileTransferTraceLevel, "TcpInterQueueClient_V1_1[{0}]: NACK Recibido", msg.Id); } return(false); } catch (Exception e) { T.EXCEPTION(e, "TcpInterQueueClient_V1_1.BeginPush WAIT FOR ACK/NACK PHASE"); } } catch (Exception e) { T.EXCEPTION(e, "TcpInterQueueClient_V1_1[" + msg.Id + "]"); } return(false); }