diff --git a/DnsServerCore.ApplicationCommon/IDnsApplication.cs b/DnsServerCore.ApplicationCommon/IDnsApplication.cs new file mode 100644 index 00000000..0fce1be2 --- /dev/null +++ b/DnsServerCore.ApplicationCommon/IDnsApplication.cs @@ -0,0 +1,42 @@ +/* +Technitium DNS Server +Copyright (C) 2021 Shreyas Zare (shreyas@technitium.com) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +*/ + +using System; +using System.Threading.Tasks; + +namespace DnsServerCore.ApplicationCommon +{ + /// + /// Allows an application to initialize itself using the DNS app config. + /// + public interface IDnsApplication : IDisposable + { + /// + /// Allows initializing the DNS application with a config. This function is also called when the config is updated to allow reloading. + /// + /// The DNS server interface object that allows access to DNS server properties. + /// The DNS application config stored in the dnsApp.config file. + Task InitializeAsync(IDnsServer dnsServer, string config); + + /// + /// The description about this app to be shown in the Apps section of the DNS web console. + /// + string Description { get; } + } +}