Пример #1
0
            /// <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);
            }