mirror of
https://github.com/uroni/urbackup_backend.git
synced 2025-10-26 11:36:50 +00:00
46 lines
834 B
C++
46 lines
834 B
C++
#include "../Interface/Thread.h"
|
|
#include "../Interface/Pipe.h"
|
|
|
|
#include "../urbackupcommon/bufmgr.h"
|
|
|
|
#include <queue>
|
|
|
|
struct BufferItem
|
|
{
|
|
char *buf;
|
|
size_t bsize;
|
|
};
|
|
|
|
class ClientSend : public IThread
|
|
{
|
|
public:
|
|
ClientSend(IPipe *pPipe, unsigned int bsize, unsigned int nbufs);
|
|
~ClientSend(void);
|
|
|
|
void operator()(void);
|
|
|
|
char *getBuffer(void);
|
|
std::vector<char*> getBuffers(unsigned int nbufs);
|
|
void sendBuffer(char* buf, size_t bsize, bool do_notify);
|
|
void notifySendBuffer(void);
|
|
void freeBuffer(char *buf);
|
|
|
|
void doExit(void);
|
|
bool hasError(void);
|
|
|
|
size_t getQueueSize(void);
|
|
|
|
private:
|
|
void print_last_error(void);
|
|
|
|
IPipe *pipe;
|
|
|
|
CBufMgr2 *bufmgr;
|
|
|
|
IMutex *mutex;
|
|
ICondition *cond;
|
|
std::queue<BufferItem> tqueue;
|
|
|
|
volatile bool exit;
|
|
volatile bool has_error;
|
|
}; |