Class for iterating through the fields in a MamaMsg
Inheritance: MamaWrapper
コード例 #1
0
		private void displayAllFields(MamaMsg msg)
		{
			MamaMsgIterator iterator = new MamaMsgIterator(null);
			MamaMsgField field;
			msg.begin(ref iterator);
			while ((field = iterator.getField()) != null)
			{
				displayField(field);
				iterator++;
			}
		}
コード例 #2
0
ファイル: MamaMsg.cs プロジェクト: OpenMAMA/OpenMAMA
 public void end(ref MamaMsgIterator iterator)
 {
     IntPtr field = NativeMethods.mamaMsgIterator_end (iterator.NativeHandle);
     iterator.SetField (field);
 }
コード例 #3
0
ファイル: MamaListenCS.cs プロジェクト: varauder/OpenMAMA
            /// <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);
            }
コード例 #4
0
ファイル: MamaMsg.cs プロジェクト: OpenMAMA/OpenMAMA
        public void begin(ref MamaMsgIterator iterator)
        {
            NativeMethods.mamaMsgIterator_associate (iterator.NativeHandle, nativeHandle);

            IntPtr tempfield = NativeMethods.mamaMsgIterator_begin (iterator.NativeHandle);
            iterator.SetField (tempfield);
            iterator++;
        }
コード例 #5
0
ファイル: MamaListenCS.cs プロジェクト: varauder/OpenMAMA
            internal ListenerSubscriptionCallback(MamaDictionary dictionary, bool iterator, int quietness, int totalSubscriptions)
            {
                // Save arguments in member variables
                m_dictionary = dictionary;
                m_iterator = iterator;
                m_quietness = quietness;
                m_totalSubscriptions = totalSubscriptions;

                // Create the message iterator
                if (iterator)
                {
                    m_messageIterator = new MamaMsgIterator(m_dictionary);
                }
            }