You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

138 lines
3.7 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
*
* @file FITKExecProgramDriver.h
* @brief 可执行程序驱动器声明
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-19
*
*/
#ifndef _FITKEXEC_PROGRAMER_DRIVER_H___
#define _FITKEXEC_PROGRAMER_DRIVER_H___
#include "FITKAbstractProgramDriver.h"
class QProcess;
namespace AppFrame
{
/**
* @brief 可执行程序驱动
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-19
*/
class FITKAppFrameworkAPI FITKExecProgramDriver : public FITKAbstractProgramerDriver
{
Q_OBJECT
public:
/**
* @brief Construct a new FITKExecProgramDriver object
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-19
*/
explicit FITKExecProgramDriver();
/**
* @brief Destroy the FITKExecProgramDriver object
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-19
*/
virtual ~FITKExecProgramDriver();
/**
* @brief 设置可执行程序的名称
* @param[i] program 程序的路径和名称
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-19
*/
void setExecProgram(const QString & program);
/**
* @brief 获取可执行程序的名称
* @return QString 程序路径和名称
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-19
*/
QString getExecProgram() const;
/**
* @brief 设置可执行程序工作路径。
* @param path工作路径
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-08-22
*/
void setWorkingDirectory(const QString & path);
/**
* @brief 获取可执行程序工作路径。
* @return 工作路径
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-08-22
*/
QString getWorkingDirectory() const;
/**
* @brief 启动程序
* @author libaojun (libaojunqd@Foxmail.com)
* @date 2024-06-09
*/
void start() override;
/**
* @brief 终止程序运行
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-19
*/
void stop() override;
/**
* @brief 是否向外发送信息
* @param[i] s 是否发送
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-26
*/
void enableSendMessage(bool s);
/**
* @brief 是否向外发送信息
* @return true
* @return false
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-26
*/
bool isSendMessage() const;
private slots:
/**
* @brief 发送信息槽函数procss触发
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-26
*/
void sendMessageSlot();
private:
/**
* @brief 可执行程序名称与路径
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-19
*/
QString _program{};
/**
* @brief 可执行程序工作路径。
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-08-22
*/
QString _workDir{};
/**
* @brief 进程对象
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-19
*/
QProcess* _process{};
/**
* @brief 发送信息标记位
* @author libaojun (libaojunqd@foxmail.com)
* @date 2024-08-26
*/
bool _sendMessage{true};
};
}
#endif