4 * Created on: 2013. 9. 12.
16 #include "ePreDefine.h"
17 #include "eFilePumpThread.h"
18 //-------------------------------------------------------------------------------
22 //#define LOG(X,...) { do{}while(0); }
25 eFilePumpThread::eFilePumpThread(int aDeviceFd, std::string aFileName)
26 : mDeviceFd(aDeviceFd), mFileName(aFileName), mTermFlag(false), uThread("FilePumpThread", TYPE_DETACHABLE)
29 //-------------------------------------------------------------------------------
31 eFilePumpThread::~eFilePumpThread()
34 //-------------------------------------------------------------------------------
36 void eFilePumpThread::Run()
39 unsigned char buffer[BUFFER_SIZE];
40 int mediafilefd = open(mFileName.c_str(), O_RDONLY | O_LARGEFILE);
42 struct pollfd pollevt;
44 pollevt.fd = mDeviceFd;
45 pollevt.events = POLLOUT;
50 rc = poll((struct pollfd*)&pollevt, 1, 1000);
52 if (pollevt.revents & POLLOUT) {
53 rc = read(mediafilefd, buffer, BUFFER_SIZE);
58 LOG("%d byte write.", rc);
60 rc = write(mDeviceFd, buffer, rc);
66 //-------------------------------------------------------------------------------
68 void eFilePumpThread::Terminate()
72 //-------------------------------------------------------------------------------