public override object FromErlang(OtpErlangObject erlangObject) { IList<QueueInfo> queueInfoList = new List<QueueInfo>(); if (erlangObject is OtpErlangList) { OtpErlangList erlangList = (OtpErlangList) erlangObject; foreach (OtpErlangObject element in erlangList) { QueueInfo queueInfo = new QueueInfo(); OtpErlangList itemList = (OtpErlangList) element; foreach (OtpErlangObject item in itemList) { OtpErlangTuple tuple = (OtpErlangTuple) item; if (tuple.arity() == 2) { string key = tuple.elementAt(0).ToString(); OtpErlangObject value = tuple.elementAt(1); switch (key) { case "name": queueInfo.Name = ExtractNameValueFromTuple((OtpErlangTuple) value); break; case "transactions": queueInfo.Transactions = ExtractLong(value); break; case "acks_uncommitted": queueInfo.AcksUncommitted = ExtractLong(value); break; case "consumers": queueInfo.Consumers = ExtractLong(value); break; case "pid": queueInfo.Pid = ExtractPid(value); break; case "durable": queueInfo.Durable = ExtractAtomBoolean(value); break; case "messages": queueInfo.Messages = ExtractLong(value); break; case "memory": queueInfo.Memory = ExtractLong(value); break; case "auto_delete": queueInfo.AutoDelete = ExtractAtomBoolean(value); break; case "messages_ready": queueInfo.MessagesReady = ExtractLong(value); break; case "arguments": OtpErlangList list = (OtpErlangList)value; if (list != null) { String[] args = new String[list.arity()]; for (int i = 0; i < list.arity(); i++) { OtpErlangObject obj = list.elementAt(i); args[i] = obj.ToString(); } queueInfo.Arguments = args; } break; case "messages_unacknowledged": queueInfo.MessagesUnacknowledged = ExtractLong(value); break; case "messages_uncommitted": queueInfo.MessageUncommitted = ExtractLong(value); break; default: break; } queueInfoList.Add(queueInfo); } } } } return queueInfoList; }
/// <summary>The from erlang.</summary> /// <param name="erlangObject">The erlang object.</param> /// <returns>The System.Object.</returns> public override object FromErlang(OtpErlangObject erlangObject) { var queueInfoList = new List<QueueInfo>(); if (erlangObject is OtpErlangList) { var erlangList = (OtpErlangList)erlangObject; foreach (var element in erlangList) { var queueInfo = new QueueInfo(); var itemList = (OtpErlangList)element; foreach (var item in itemList) { var tuple = (OtpErlangTuple)item; if (tuple.arity() == 2) { var key = tuple.elementAt(0).ToString(); var value = tuple.elementAt(1); switch (ToQueueInfoField(key)) { case QueueInfoField.name: queueInfo.Name = this.ExtractNameValueFromTuple((OtpErlangTuple)value); break; case QueueInfoField.transactions: queueInfo.Transactions = ExtractLong(value); break; case QueueInfoField.acks_uncommitted: queueInfo.AcksUncommitted = ExtractLong(value); break; case QueueInfoField.consumers: queueInfo.Consumers = ExtractLong(value); break; case QueueInfoField.pid: queueInfo.Pid = ExtractPid(value); break; case QueueInfoField.durable: queueInfo.Durable = this.ExtractAtomBoolean(value); break; case QueueInfoField.messages: queueInfo.Messages = ExtractLong(value); break; case QueueInfoField.memory: queueInfo.Memory = ExtractLong(value); break; case QueueInfoField.auto_delete: queueInfo.AutoDelete = this.ExtractAtomBoolean(value); break; case QueueInfoField.messages_ready: queueInfo.MessagesReady = ExtractLong(value); break; case QueueInfoField.arguments: var list = (OtpErlangList)value; if (list != null) { var args = new string[list.arity()]; for (var i = 0; i < list.arity(); i++) { var obj = list.elementAt(i); args[i] = obj.ToString(); } queueInfo.Arguments = args; } break; case QueueInfoField.messages_unacknowledged: queueInfo.MessagesUnacknowledged = ExtractLong(value); break; case QueueInfoField.messages_uncommitted: queueInfo.MessageUncommitted = ExtractLong(value); break; default: break; } } } queueInfoList.Add(queueInfo); } } return queueInfoList; }
/// <summary>The from erlang.</summary> /// <param name="erlangObject">The erlang object.</param> /// <returns>The System.Object.</returns> public override object FromErlang(OtpErlangObject erlangObject) { var queueInfoList = new List <QueueInfo>(); if (erlangObject is OtpErlangList) { var erlangList = (OtpErlangList)erlangObject; foreach (var element in erlangList) { var queueInfo = new QueueInfo(); var itemList = (OtpErlangList)element; foreach (var item in itemList) { var tuple = (OtpErlangTuple)item; if (tuple.arity() == 2) { var key = tuple.elementAt(0).ToString(); var value = tuple.elementAt(1); switch (ToQueueInfoField(key)) { case QueueInfoField.name: queueInfo.Name = this.ExtractNameValueFromTuple((OtpErlangTuple)value); break; case QueueInfoField.transactions: queueInfo.Transactions = ExtractLong(value); break; case QueueInfoField.acks_uncommitted: queueInfo.AcksUncommitted = ExtractLong(value); break; case QueueInfoField.consumers: queueInfo.Consumers = ExtractLong(value); break; case QueueInfoField.pid: queueInfo.Pid = ExtractPid(value); break; case QueueInfoField.durable: queueInfo.Durable = this.ExtractAtomBoolean(value); break; case QueueInfoField.messages: queueInfo.Messages = ExtractLong(value); break; case QueueInfoField.memory: queueInfo.Memory = ExtractLong(value); break; case QueueInfoField.auto_delete: queueInfo.AutoDelete = this.ExtractAtomBoolean(value); break; case QueueInfoField.messages_ready: queueInfo.MessagesReady = ExtractLong(value); break; case QueueInfoField.arguments: var list = (OtpErlangList)value; if (list != null) { var args = new string[list.arity()]; for (var i = 0; i < list.arity(); i++) { var obj = list.elementAt(i); args[i] = obj.ToString(); } queueInfo.Arguments = args; } break; case QueueInfoField.messages_unacknowledged: queueInfo.MessagesUnacknowledged = ExtractLong(value); break; case QueueInfoField.messages_uncommitted: queueInfo.MessageUncommitted = ExtractLong(value); break; default: break; } } } queueInfoList.Add(queueInfo); } } return(queueInfoList); }