using Edge.Core.Parser;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Wayne.FDCPOSLibrary;
namespace Edge.Core.Processor
{
public interface IFdcCommunicableController //: IDeviceController
{
///
/// send a broadcast message to all fdc clients.
/// String is message content will be send to Fdc client.
/// Bool is the sending result, true for send succeed, otherwise, failed.
///
Func BroadcastMessageViaFdc { get; set; }
///
/// send a message to a specific fdc client.
/// 1st String is the workstation id for the target fdc client.
/// 2nd String is the application sender for the target fdc client.
/// 3rd String is the message content will be send to Fdc client.
/// Bool is the sending result, true for send succeed, otherwise, failed.
///
Func SendMessageViaFdc { get; set; }
///
/// Once a request is received from remote fdc client via network, this Func will be called,
/// meanwhile, a response will be constructed here and returned to Fdc client.
///
/// String as the In parameter is the message content send from Fdc client.
/// String in Tuple<,> is the message content as the response will be returned to Fdc client.
/// OverallResult in Tuple<,> is the overall result value in response which will be returned to Fdc client.
///
Func> OnMessageReceivedViaFdc { get; set; }
}
}