// -------------------------------------------------------------------------------------------------------------------- // // This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. // // // Defines the IServerService type. // // -------------------------------------------------------------------------------------------------------------------- namespace HandBrake.ApplicationServices.Services.Interfaces { using System.Runtime.Serialization; using System.ServiceModel; using HandBrake.ApplicationServices.Model; /// /// The HandBrakeService interface. /// [ServiceContract(CallbackContract = typeof(IHbServiceCallback), SessionMode = SessionMode.Required)] public interface IServerService { /// /// Gets the activity log. /// [DataMember] string EncodeActivityLog { get; } /// /// Gets a value indicating whether is encoding. /// bool IsEncoding { [OperationContract] get; } /// /// Start the WCF Service /// /// /// The port. /// void Start(string port); /// /// Stop the WCF Service /// void Stop(); /// /// Start and Encode /// /// /// The job. /// [OperationContract] void StartEncode(QueueTask job); /// /// The process encode logs. /// /// /// The destination. /// [OperationContract] void ProcessEncodeLogs(string destination); /// /// Stop and Encode /// [OperationContract] void StopEncode(); /// /// Subscribe for callbacks from the called functions /// /// /// The System.Boolean. /// [OperationContract] bool Subscribe(); /// /// Unsubscribe from callbacks. /// /// /// The System.Boolean. /// [OperationContract] bool Unsubscribe(); } }