// --------------------------------------------------------------------------------------------------------------------
//
// 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;
using HandBrake.ApplicationServices.Parsing;
///
/// The HandBrakeService interface.
///
[ServiceContract(CallbackContract = typeof(IHbServiceCallback), SessionMode = SessionMode.Required)]
public interface IServerService
{
///
/// Gets the activity log.
///
[DataMember]
string ScanActivityLog { get; }
///
/// Gets the activity log.
///
[DataMember]
string EncodeActivityLog { get; }
///
/// Gets the souce data.
///
Source SouceData
{
[OperationContract]
get;
}
///
/// Gets a value indicating whether is scanning.
///
bool IsScanning
{
[OperationContract]
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();
///
/// The scan source.
///
///
/// The path.
///
///
/// The title.
///
///
/// The preview Count.
///
[OperationContract]
void ScanSource(string path, int title, int previewCount);
///
/// Start and Encode
///
///
/// The job.
///
///
/// The enable logging.
///
[OperationContract]
void StartEncode(QueueTask job, bool enableLogging);
///
/// The process encode logs.
///
///
/// The destination.
///
[OperationContract]
void ProcessEncodeLogs(string destination);
///
/// Stop and Encode
///
[OperationContract]
void StopEncode();
///
/// Stop the scan.
///
[OperationContract]
void StopScan();
///
/// Subscribe for callbacks from the called functions
///
///
/// The System.Boolean.
///
[OperationContract]
bool Subscribe();
///
/// Unsubscribe from callbacks.
///
///
/// The System.Boolean.
///
[OperationContract]
bool Unsubscribe();
}
}