/// <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); }