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
}
}