35 lines
551 B
C
35 lines
551 B
C
|
|
#ifndef CCPROCESS_H
|
||
|
|
#define CCPROCESS_H
|
||
|
|
|
||
|
|
#include <CCString.h>
|
||
|
|
#include "cstdio"
|
||
|
|
#include "queue"
|
||
|
|
|
||
|
|
#define CC_PROCESS_MAX_BUFFER_SIZE 1024
|
||
|
|
|
||
|
|
class CCProcess
|
||
|
|
{
|
||
|
|
private:
|
||
|
|
FILE* pipe = nullptr;
|
||
|
|
std::queue<CCString> CommandQueues;
|
||
|
|
std::queue<CCString> ReadBuffer;
|
||
|
|
bool Flag = false;
|
||
|
|
public:
|
||
|
|
CCProcess() = default;
|
||
|
|
CCProcess(CCProcess& p);
|
||
|
|
void AddCommand(const CCString& Command);
|
||
|
|
void Start(bool blocking = false);
|
||
|
|
void Stop();
|
||
|
|
CCString ReadLineBuffer();
|
||
|
|
bool IsRunning() const;
|
||
|
|
private:
|
||
|
|
|
||
|
|
public:
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#endif
|