using IW4MAdmin.Application.RCon;
using SharedLibraryCore.Interfaces;
using System.Text;

namespace IW4MAdmin.Application.Factories
{
    /// <summary>
    /// implementation of IRConConnectionFactory
    /// </summary>
    internal class RConConnectionFactory : IRConConnectionFactory
    {
        private static readonly Encoding gameEncoding = Encoding.GetEncoding("windows-1252");
        private readonly ILogger _logger;
       
        /// <summary>
        /// Base constructor
        /// </summary>
        /// <param name="logger"></param>
        public RConConnectionFactory(ILogger logger)
        {
            _logger = logger;
        }

        /// <summary>
        /// creates a new rcon connection instance
        /// </summary>
        /// <param name="ipAddress">ip address of the server</param>
        /// <param name="port">port of the server</param>
        /// <param name="password">rcon password of the server</param>
        /// <returns></returns>
        public IRConConnection CreateConnection(string ipAddress, int port, string password)
        {
            return new RConConnection(ipAddress, port, password, _logger, gameEncoding);
        }
    }
}