using System;
namespace Wayne.Lib.IO
{
    /// <summary>
    /// File support extension. Used to plug in different behaviour to FileSupport dependent on what platform the program is executing on.
    /// </summary>
    public interface IFileSupportExtension
    {
        /// <summary>
        /// Sets the creation time for a file
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="dateTime"></param>
        void SetCreationTime(string fileName, DateTime dateTime);

        /// <summary>
        /// Sets the last access time for a file
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="dateTime"></param>
        void SetLastAccessTime(string fileName, DateTime dateTime);

        /// <summary>
        /// Sets last write time for a file.
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="dateTime"></param>
        void SetLastWriteTime(string fileName, DateTime dateTime);

        /// <summary>
        /// Get creation time on the file.
        /// </summary>
        /// <param name="fileName"></param>
        DateTime GetCreationTime(string fileName);

        /// <summary>
        /// Get last access time on the file.
        /// </summary>
        /// <param name="fileName"></param>
        DateTime GetLastAccessTime(string fileName);

        /// <summary>
        /// Get last write time on the file.
        /// </summary>
        /// <param name="fileName"></param>
        DateTime GetLastWriteTime(string fileName);
    }
}