using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.InformationProtection;

namespace AipGateway.AIP
{
    public abstract class AbstractManager : IDisposable
    {
        public int LastErrNo { get; internal set; }
        public string LastErrMsg { get; internal set; }

        protected void SetError(int errNo, string errMsg1, string errMsg2 = "No Exception Message.")
        {
            LastErrNo = errNo;
            LastErrMsg = errMsg1 + "\r\n" + errMsg2;
            Console.WriteLine("AbstractManager::SetError ==> {0}, {1}, {2}", errNo, errMsg1, errMsg2);
        }

        public abstract bool CreateProfile(ref MipContext mipContext);
        public abstract bool CreateEngine(ref Identity identity, ref AuthDelegateImplementation authDelegate);
        public abstract void Dispose();
    }
}
