/// <summary>
            /// Updates the event flags.
            /// </summary>
            /// <param name="isCreating">if set to <c>true</c> is creating.</param>
            /// <param name="isUpdating">if set to <c>true</c> is updating.</param>
            /// <param name="isReleasing">if set to <c>true</c> is releasing.</param>
            /// <param name="isDownloading">if set to <c>true</c> is downloading.</param>
            /// <param name="isLoaded">if set to <c>true</c> is loaded.</param>
            /// <param name="isCanceled">if set to <c>true</c> is canceled.</param>
            /// <param name="isTimeout">if set to <c>true</c> has timed-out.</param>
            /// <param name="isError">if set to <c>true</c> has errored.</param>
            public void UpdateEvent(bool isCreating, bool isUpdating, bool isReleasing, bool isDownloading,
                bool isLoaded, bool isCanceled, bool isTimeout, bool isError)
            {
                // Directional Event Flags

                if (isCreating) _eventFlags |= EventFlagType.Creating;
                else _eventFlags &= ~EventFlagType.Creating;

                if (isUpdating) _eventFlags |= EventFlagType.Updating;
                else _eventFlags &= ~EventFlagType.Updating;

                if (isReleasing) _eventFlags |= EventFlagType.Releasing;
                else _eventFlags &= ~EventFlagType.Releasing;

                if (isDownloading) _eventFlags |= EventFlagType.Downloading;
                else _eventFlags &= ~EventFlagType.Downloading;

                // Non-Directional Event Flags

                if (isLoaded) _eventFlags |= EventFlagType.Loaded;
                else _eventFlags &= ~EventFlagType.Loaded;

                if (isCanceled) _eventFlags |= EventFlagType.Canceled;
                else _eventFlags &= ~EventFlagType.Canceled;

                if (isTimeout) _eventFlags |= EventFlagType.Timeout;
                else _eventFlags &= ~EventFlagType.Timeout;

                if (isError) _eventFlags |= EventFlagType.Error;
                else _eventFlags &= ~EventFlagType.Error;
            }
 /// <summary>
 /// Sets the event flag to canceled.
 /// </summary>
 public void Cancel()
 {
     _eventFlags |= EventFlagType.Canceled;
 }
 /// <summary>
 /// Clears the specified resource event flags.
 /// </summary>
 /// <param name="flags">The flags.</param>
 public void ClearFlags(EventFlagType flags)
 {
     _eventFlags &= ~flags;
 }
 /// <summary>
 /// Sets the event flags.
 /// </summary>
 /// <param name="flags">The event flags.</param>
 public void SetFlags(EventFlagType flags)
 {
     _eventFlags = flags;
 }
 /// <summary>
 /// Determines whether this instance has the specified event flag(s).
 /// </summary>
 /// <param name="flag">The flag.</param>
 /// <returns>
 ///   <c>true</c> if this instance has the specified event flag(s); otherwise, <c>false</c>.
 /// </returns>
 /// <remarks>Multiple flags can be specified; however, this will only return <c>true</c> in the event that they all match.</remarks>
 private bool HasFlags(EventFlagType flag)
 {
     return (_eventFlags & flag) == flag;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="TVIState"/> class.
 /// </summary>
 /// <param name="resource">The <see cref="Common.Storage.Version"/>.</param>
 public State(Common.Storage.Version resource)
 {
     _eventFlags = EventFlagType.None;
     _status = StatusType.None;
     _direction = DirectionType.None;
     _resource = resource;
 }