using System; namespace Wayne.Lib { /// /// The EventArgs is used when ... /// public class ReserveCompletedEventArgs : AsyncCompletedEventArgs { #region Fields TReserved reservedObject; #endregion #region Construction /// /// Initializes a new instance of the class ReserveCompletedEventArgs where the reservation was successful. /// /// The reserved object. /// An optional user token. public ReserveCompletedEventArgs(TReserved reservedObject, object userToken) : base(true, userToken) { this.reservedObject = reservedObject; } /// /// Initializes a new instance of the class ReserveCompletedEventArgs where the reservation failed. /// /// An optional user token. public ReserveCompletedEventArgs(object userToken) : base(false, userToken) { } #endregion #region Properties /// /// The reserved object. /// /// There was no reserved object since the reservation failed. public TReserved ReservedObject { get { if (!Success) throw new ObjectNotReservedException("There was no reserved object of the type " + typeof(TReserved).FullName + " since the reservation failed."); return reservedObject; } } #endregion } }