Exemple #1
0
            public void onMsg(MamaSubscription subscription, MamaMsg msg)
            {
                MamaMsgIterator iterator = new MamaMsgIterator(mDictionary);

                // Set the iterator to the beginning of the message
                msg.begin(ref iterator);

                Console.WriteLine("\n+------------------------+--------+--------------+-------------------");
                Console.WriteLine("| FIELD NAME             | FID    | TYPE         | VALUE (AS STRING) ");
                Console.WriteLine("+------------------------+--------+--------------+-------------------");

                // Keep going until there are no more fields
                MamaMsgField field = iterator.getField();

                while (field != null)
                {
                    string fieldType          = field.getTypeName();
                    string fieldName          = field.getName();
                    int    fid                = field.getFid();
                    string fieldValueAsString = field.getAsString();

                    Console.WriteLine("| {0,-22} | {1,-6} | {2,-12} | {3}",
                                      fieldName,
                                      fid,
                                      fieldType,
                                      fieldValueAsString);


                    iterator++;

                    // Get the next field
                    field = iterator.getField();
                }
            }
            public void onField(MamaMsg msg, MamaMsgField field, object closure)
            {
                // Get the indent from the closure
                int indent = (int)closure;

                // Display the field with the specified indent
                displayField(field, indent);
            }
Exemple #3
0
        /// <summary>
        /// FieldIterator callback
        /// </summary>
        //////////////////////////////////////////////////////////////////////////////////////////////////
        public void onField(MamaMsg msg,
                            MamaMsgField field,
                            object closure)
        {
            MamaFieldDescriptor descriptor = field.getDescriptor();

            Console.WriteLine(descriptor.getName() + " : " + field.getAsString());
        }
            public void onMsg(MamaSubscription subscription, MamaMsg msg)
            {
                // Create a field callback class to display the field contents
                ListenerFieldCallback fieldCallback = new ListenerFieldCallback(m_dictionary, m_iterator, m_quietness);

                if (m_quietness < 2)
                {
                    Console.WriteLine(subscription.subscSource + "." +
                                      subscription.subscSymbol + " TYPE: " +
                                      msg.getType() + " Status: " +
                                      msg.getStatus());
                }

                if (m_quietness < 1)
                {
                    if (m_iterator)
                    {
                        // Set the iterator to the beginning of the message
                        msg.begin(ref m_messageIterator);

                        // Keep going until there are no more fields
                        MamaMsgField field = m_messageIterator.getField();
                        while (field != null)
                        {
                            // Display the field
                            fieldCallback.displayField(field, 0);

                            m_messageIterator++;

                            // Get the next field
                            field = m_messageIterator.getField();
                        }
                    }

                    else
                    {
                        // Otherwise use the iteration function on the message itself
                        int indentlevel = 0;
                        msg.iterateFields(fieldCallback, m_dictionary, indentlevel);
                    }
                }
            }
            /// <summary>
            /// Display the contents of a field in the console window.
            /// </summary>
            /// <param name="field">
            /// The field to display.
            /// </param>
            /// <param name="indent">
            /// The level of indent to add before the string for formatting purposes.
            /// </param>
            internal void displayField(MamaMsgField field, int indent)
            {
                // Format a log string
                string logMessage = "";

                string indentSpacer = "  ";

                for (int i = 0; i < indent; i++)
                {
                    indentSpacer += "  ";
                }

                if (m_quietness < 1)
                {
                    logMessage = string.Format(
                        "{0}{1, -20 } |{2,5} | {3, 10} | ",
                        indentSpacer,
                        field.getName(),
                        field.getFid(),
                        field.getTypeName());
                }

                mamaFieldType fieldType = field.getType();

                switch (fieldType)
                {
                case mamaFieldType.MAMA_FIELD_TYPE_MSG:
                {
                    MamaMsg tmpMsg = field.getMsg();
                    Console.WriteLine(logMessage);
                    Console.WriteLine(indentSpacer + "{");


                    if (!(m_iterator))
                    {
                        tmpMsg.iterateFields(this, m_dictionary, indent + 1);
                    }
                    else
                    {
                        MamaMsgIterator subIterator = new MamaMsgIterator(m_dictionary);
                        MamaMsgField    subField;
                        tmpMsg.begin(ref subIterator);
                        while ((subField = subIterator.getField()) != null)
                        {
                            displayField(subField, indent + 1);
                            subIterator++;
                        }
                    }
                    Console.WriteLine(indentSpacer + "}");
                }
                break;

                case mamaFieldType.MAMA_FIELD_TYPE_VECTOR_MSG:
                {
                    MamaMsg[] tmpMsgarray = field.getVectorMsg();
                    foreach (MamaMsg tmpMsg in tmpMsgarray)
                    {
                        Console.WriteLine(logMessage);
                        Console.WriteLine(indentSpacer + "{");
                        if (!(m_iterator))
                        {
                            tmpMsg.iterateFields(this, m_dictionary, indent + 1);
                        }
                        else
                        {
                            MamaMsgIterator subIterator = new MamaMsgIterator(m_dictionary);
                            MamaMsgField    subField;
                            tmpMsg.begin(ref subIterator);
                            while ((subField = subIterator.getField()) != null)
                            {
                                displayField(subField, indent + 1);
                                subIterator++;
                            }
                        }
                        Console.WriteLine(indentSpacer + "}");
                    }
                }
                break;

                case mamaFieldType.MAMA_FIELD_TYPE_STRING:
                    logMessage += field.getString();
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_BOOL:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getBool().ToString();
                    }
                    else
                    {
                        logMessage += field.getBool();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_CHAR:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getChar().ToString();
                    }
                    else
                    {
                        logMessage += field.getChar();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_I8:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getI8().ToString();
                    }
                    else
                    {
                        logMessage += field.getI8();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_U8:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getU8().ToString();
                    }
                    else
                    {
                        logMessage += field.getU8();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_I16:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getI16().ToString();
                    }
                    else
                    {
                        logMessage += field.getI16();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_U16:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getU16().ToString();
                    }
                    else
                    {
                        logMessage += field.getU16();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_I32:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getI32().ToString();
                    }
                    else
                    {
                        logMessage += field.getI32();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_U32:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getU32().ToString();
                    }
                    else
                    {
                        logMessage += field.getU32();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_I64:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getI64().ToString();
                    }
                    else
                    {
                        logMessage += field.getI64();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_U64:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getU64().ToString();
                    }
                    else
                    {
                        logMessage += field.getU64();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_F32:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getF32().ToString();
                    }
                    else
                    {
                        logMessage += field.getF32();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_F64:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getF64().ToString();
                    }
                    else
                    {
                        logMessage += field.getF64();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_TIME:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getDateTime().ToString();
                    }
                    else
                    {
                        logMessage += field.getDateTime();
                    }
                    break;

                case mamaFieldType.MAMA_FIELD_TYPE_PRICE:
                    if (m_quietness < 1)
                    {
                        logMessage += field.getPrice().getAsString();
                    }
                    else
                    {
                        logMessage += field.getPrice();
                    }
                    break;

                default:

                    logMessage += field.getAsString();
                    break;
                }

                Console.WriteLine(logMessage);
            }