Applied patch from Stephane Ramet to implement QueueBrowser. Thanks Stephane! Fixes [AMQNET-517]. (See https://issues.apache.org/jira/browse/AMQNET-517)
Project: http://git-wip-us.apache.org/repos/asf/activemq-nms-ems/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-nms-ems/commit/6e3b1039 Tree: http://git-wip-us.apache.org/repos/asf/activemq-nms-ems/tree/6e3b1039 Diff: http://git-wip-us.apache.org/repos/asf/activemq-nms-ems/diff/6e3b1039 Branch: refs/heads/master Commit: 6e3b1039c3cba89277e476fc05147c46a9f60d4e Parents: 3dd2c9f Author: Jim Gomes <[email protected]> Authored: Wed Jan 13 23:24:44 2016 +0000 Committer: Jim Gomes <[email protected]> Committed: Wed Jan 13 23:24:44 2016 +0000 ---------------------------------------------------------------------- src/main/csharp/QueueBrowser.cs | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-nms-ems/blob/6e3b1039/src/main/csharp/QueueBrowser.cs ---------------------------------------------------------------------- diff --git a/src/main/csharp/QueueBrowser.cs b/src/main/csharp/QueueBrowser.cs index 37d8172..3423f20 100644 --- a/src/main/csharp/QueueBrowser.cs +++ b/src/main/csharp/QueueBrowser.cs @@ -107,12 +107,37 @@ namespace Apache.NMS.EMS get { return EMSConvert.ToNMSQueue(this.tibcoQueueBrowser.Queue); } } + internal class Enumerator : IEnumerator + { + private IEnumerator innerEnumerator; + + public Enumerator(IEnumerator innerEnumerator) + { + this.innerEnumerator = innerEnumerator; + } + + public object Current + { + get + { + return EMSConvert.ToNMSMessage((TIBCO.EMS.Message)this.innerEnumerator.Current); + } + } + + public bool MoveNext() + { + return this.innerEnumerator.MoveNext(); + } + + public void Reset() + { + this.innerEnumerator.Reset(); + } + } + public IEnumerator GetEnumerator() { - // TODO: This enumerator will need to be adapted. As it is now, the low-level EMS - // objects will be enumerated. We need to wrap these objects into the NMS interface - // types to fit into the provider agnostic system. - return this.tibcoQueueBrowser.GetEnumerator(); + return new Enumerator(this.tibcoQueueBrowser.GetEnumerator()); } } }
