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

namespace EVCB_OCPP.Packet20.Features
{
    /// <summary>
    /// Abstract class. Feature ties {Request} and {Confirmation} types together with an action name.
    /// Can handle a incoming request by forwarding it to the feature {Profile}.
    /// </summary>
    public abstract class Feature
    {
        /// <summary>
        /// Get the {Request} for the feature.
        /// return the {Request}
        /// </summary>
        public abstract Type GetRequestType();

        public abstract Type GetConfirmationType();

        public abstract string GetAction();
    }
}