public void Oneway(Command command)
        {
            lock (socketWriterLock)
            {
                try
                {
                    if (closed.Value)
                    {
                        throw new Exception("Error writing to broker.  Transport connection is closed.");
                    }

                    Wireformat.Marshal(command, socketWriter);
                    //jdg socketWriter.Flush();
                }
                catch (Exception ex)
                {
                    if (command.ResponseRequired)
                    {
                        // Make sure that something higher up doesn't get blocked.
                        // Respond with an exception.
                        ExceptionResponse er    = new ExceptionResponse();
                        BrokerError       error = new BrokerError();

                        error.Message        = "Transport connection error: " + ex.Message;
                        error.ExceptionClass = ex.ToString();
                        er.Exception         = error;
                        er.CorrelationId     = command.CommandId;
                        commandHandler(this, er);
                    }
                }
            }
        }
示例#2
0
        public void Oneway(Command command)
        {
            lock (myLock)
            {
                if (closed.Value)
                {
                    throw new InvalidOperationException("Error writing to broker.  Transport connection is closed.");
                }

                if (command is ShutdownInfo)
                {
                    seenShutdown = true;
                }

                Wireformat.Marshal(command, socketWriter);
            }
        }
示例#3
0
 public void Oneway(Command command)
 {
     Wireformat.Marshal(command, socketWriter);
     socketWriter.Flush();
 }