bool CommunicationErrorHandler(
     QuickFAST.DotNet.DNMessageDeliverer builder,
     String message)
 {
     Console.WriteLine("Communication error: {0}", message);
     return(true);
 }
 bool DecoderErrorHandler(
     QuickFAST.DotNet.DNMessageDeliverer builder,
     String message)
 {
     Console.WriteLine("Decoder error: {0}", message);
     return(true);
 }
 public bool MessageInterpreter(
     QuickFAST.DotNet.DNMessageDeliverer builder,
     QuickFAST.DotNet.DNFieldSet message)
 {
     ++recordCount_;
     return(true);
 }
 public bool Logger(
     QuickFAST.DotNet.DNMessageDeliverer builder,
     ushort logLevel,
     String message)
 {
     Console.WriteLine("{0}", message);
     return(true);
 }
 public bool MessageInterpreter(
     QuickFAST.DotNet.DNMessageDeliverer builder,
     QuickFAST.DotNet.DNFieldSet message)
 {
     ++recordCount_;
     Console.Write("Record #{0} ", recordCount_);
     interpreter_.interpret(message);
     Console.WriteLine();
     return(true);
 }
            public int run()
            {
                int result = 0;

                try
                {
                    QuickFAST.DotNet.DNMessageDeliverer builder = new QuickFAST.DotNet.DNMessageDeliverer();
                    // Handle incoming FAST decoded messages
                    builder.MessageReceived +=
                        new QuickFAST.DotNet.DNMessageDeliverer.MessageReceiver(
                            MessageInterpreter);
                    // Handle log messages
                    builder.LogMessage +=
                        new QuickFAST.DotNet.DNMessageDeliverer.LogHandler(
                            Logger);
                    // Handle communications errors
                    builder.CommunicationError +=
                        new QuickFAST.DotNet.DNMessageDeliverer.ErrorHandler(
                            CommunicationErrorHandler);
                    // Handle decoding errors
                    builder.DecodingError +=
                        new QuickFAST.DotNet.DNMessageDeliverer.ErrorHandler(
                            DecoderErrorHandler);

                    GCSettings.LatencyMode = GCLatencyMode.LowLatency;

                    QuickFAST.DotNet.Stopwatch decodeTimer = new QuickFAST.DotNet.Stopwatch();
                    decoder_.run(builder, 0, true);
                    decodeTimer.Stop();
                    ulong decodeLapse = decodeTimer.ElapsedMilliseconds;

                    GCSettings.LatencyMode = GCLatencyMode.Interactive;

#if DEBUG
                    performanceFile_.Write("[debug] ");
#endif // DEBUG
                    performanceFile_.Write("Decoded {0} messages in {1}  milliseconds. [", recordCount_, decodeLapse);
                    performanceFile_.Write("{0:F3} msec/message. = ", (double)decodeLapse / (double)recordCount_);
                    performanceFile_.WriteLine("{0:F3} messages/second]", (double)1000 * (double)recordCount_ / (double)decodeLapse);
                    performanceFile_.Flush();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    result = 1;
                }
                return(result);
            }
            public int run()
            {
                int result = 0;

                try
                {
                    /// Handle incoming FAST decoded messages
                    QuickFAST.DotNet.DNMessageDeliverer builder = new QuickFAST.DotNet.DNMessageDeliverer();
                    builder.MessageReceived +=
                        new QuickFAST.DotNet.DNMessageDeliverer.MessageReceiver(
                            this.MessageInterpreter);
                    builder.LogMessage +=
                        new QuickFAST.DotNet.DNMessageDeliverer.LogHandler(
                            Logger);
                    builder.CommunicationError +=
                        new QuickFAST.DotNet.DNMessageDeliverer.ErrorHandler(
                            CommunicationErrorHandler);
                    builder.DecodingError +=
                        new QuickFAST.DotNet.DNMessageDeliverer.ErrorHandler(
                            DecoderErrorHandler);
                    if (memoryBuffer_ != null)
                    {
                        decoder_.run(builder, memoryBuffer_, 0, memoryBuffer_.Length, true);
                    }
                    else
                    {
                        decoder_.run(builder, 0, true);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    result = 1;
                }

                return(result);
            }
            public int run()
            {
                int result = 0;
                try
                {
                    QuickFAST.DotNet.DNMessageDeliverer builder = new QuickFAST.DotNet.DNMessageDeliverer();
                    // Handle incoming FAST decoded messages
                    builder.MessageReceived +=
                        new QuickFAST.DotNet.DNMessageDeliverer.MessageReceiver(
                            MessageInterpreter);
                    // Handle log messages
                    builder.LogMessage +=
                        new QuickFAST.DotNet.DNMessageDeliverer.LogHandler(
                            Logger);
                    // Handle communications errors
                    builder.CommunicationError +=
                        new QuickFAST.DotNet.DNMessageDeliverer.ErrorHandler(
                            CommunicationErrorHandler);
                    // Handle decoding errors
                    builder.DecodingError +=
                        new QuickFAST.DotNet.DNMessageDeliverer.ErrorHandler(
                            DecoderErrorHandler);

                    GCSettings.LatencyMode = GCLatencyMode.LowLatency;

                    QuickFAST.DotNet.Stopwatch decodeTimer = new QuickFAST.DotNet.Stopwatch();
                    decoder_.run(builder, 0, true);
                    decodeTimer.Stop();
                    ulong decodeLapse = decodeTimer.ElapsedMilliseconds;

                    GCSettings.LatencyMode = GCLatencyMode.Interactive;

#if DEBUG
                    performanceFile_.Write("[debug] ");
#endif // DEBUG
                    performanceFile_.Write("Decoded {0} messages in {1}  milliseconds. [", recordCount_, decodeLapse);
                    performanceFile_.Write("{0:F3} msec/message. = ", (double)decodeLapse / (double)recordCount_);
                    performanceFile_.WriteLine("{0:F3} messages/second]", (double)1000 * (double)recordCount_ / (double)decodeLapse);
                    performanceFile_.Flush();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    result = 1;
                }
                return result;
            }
            public int run()
            {
                int result = 0;
                try
                {
                    /// Handle incoming FAST decoded messages
                    QuickFAST.DotNet.DNMessageDeliverer builder = new QuickFAST.DotNet.DNMessageDeliverer();
                    builder.MessageReceived +=
                        new QuickFAST.DotNet.DNMessageDeliverer.MessageReceiver(
                            this.MessageInterpreter);
                    builder.LogMessage +=
                        new QuickFAST.DotNet.DNMessageDeliverer.LogHandler(
                            Logger);
                    builder.CommunicationError +=
                        new QuickFAST.DotNet.DNMessageDeliverer.ErrorHandler(
                            CommunicationErrorHandler);
                    builder.DecodingError +=
                        new QuickFAST.DotNet.DNMessageDeliverer.ErrorHandler(
                            DecoderErrorHandler);
                    if (memoryBuffer_ != null)
                    {
                        decoder_.run(builder, memoryBuffer_, 0, memoryBuffer_.Length, true);

                    }
                    else
                    {
                        decoder_.run(builder, 0, true);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    result = 1;
                }

                return result;
            }