namespace NcProgramManager.Cnc.Fanuc
{
    internal interface IFocasDialect
    {
        FanucDialect Dialect { get; }
        bool SupportsPathBasedPrograms { get; }
        bool SupportsAlmMsg2 { get; }

        short ReadAlarmMessages(ushort hndl, ref short num, string[] outBuffer);
        short ReadOperatorMessages(ushort hndl, ref short num, string[] outBuffer);

        short DownloadStart(ushort hndl, string folderPath, short fileType = 0);
        short DownloadData(ushort hndl, ref int len, char[] data);
        short DownloadEnd(ushort hndl);

        short UploadStart(ushort hndl, string fileName, long programNumber, short fileType = 0);
        short UploadData(ushort hndl, ref int len, char[] data);
        short UploadEnd(ushort hndl);

        string ReadMainProgramIdentifier(ushort hndl, out short ret);
        short ReadActiveProgramComment(ushort hndl, byte[] buffer, out int charsRead);
    }
}
