using Quadarax.Foundation.Core.Data; namespace qdr.fnd.core.pqueue.Process { public interface IPsProcessProvider : IDisposable { /// /// Collection (dictionary) of running arguments for the process. /// IDictionary Arguments { get; } /// /// Flag signalizes if the process is running. /// bool IsRunning { get; } /// /// Working/processing item identifier. Points to ."/> /// string ItemId { get; } /// /// Gets information when the process started (by calling operation). /// If process haven't been started yet, returns null. /// DateTime? StartedTimestamp { get; } /// /// Gets information when the process was finished (by calling operation or when operation regullary ends). /// If process haven't been finished yet, returns null. /// DateTime? FinishedTimestamp { get; } /// /// Validates the process arguments. Throws if validation fails. /// void Validate(); /// /// Starts the process. Throws if the process is already running. /// void Start(); /// /// Stops the process. Throws if the process is not running. /// void Stop(); /// /// Waits till is false."/> /// void WaitToDone(); } }