//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ using System; namespace Experimental.System.Messaging { /// /// /// Provides data for the event. When your asynchronous /// operation calls an event handler, an instance of this class is passed to the /// handler. /// public class PeekCompletedEventArgs : EventArgs { private IAsyncResult result; private Message message; private MessageQueue sender; /// /// internal PeekCompletedEventArgs(MessageQueue sender, IAsyncResult result) { this.result = result; this.sender = sender; } /// /// /// Contains the result of the asynchronous /// operation requested. /// public IAsyncResult AsyncResult { get { return this.result; } set { this.result = value; } } /// /// /// The end result of the posted asynchronous peek /// operation. /// public Message Message { get { if (this.message == null) { try { this.message = this.sender.EndPeek(result); } catch { throw; } } return this.message; } } } }