/// <summary> /// Returns the next committed record in the application log and then marks /// if for deletion if there is one. The method returns null if there /// are no records remaining to be read. /// </summary> /// <returns>The next log record or <c>null</c>.</returns> /// <remarks> /// <para> /// Records marked for deletion will be skipped the next time /// a log reader processes the log and if all of the records in /// a given log file are deleted, then the log file itself will /// be deleted. /// </para> /// <para> /// Note that this method returns only committed log records. Records written /// by the writer logs will be cached for some period of time before being /// commited to the log (for efficiency). Cached records will not be returned /// by this method. /// </para> /// <para> /// After this method indicates that it has run out of committed records to be read /// (by returning null), applications should monitor the <see cref="AppLog.RecordAvailable" /> /// event. This event will be raised when one or more committed events become available to /// be read. /// </para> /// </remarks> /// <exception cref="LogAccessException">Thrown for log writers.</exception> public AppLogRecord ReadDelete() { return(appLog.ReadDelete()); }