#include <qsefilereader.h>


Public Types | |
| typedef QThread | inherited |
Public Slots | |
| void | openFile (QString fileName) |
| void | appendFile (QString fileName) |
Public Member Functions | |
| QseFileReader (const QString &name, QObject *parent=0) | |
| ~QseFileReader () | |
| QseInputFile * | inputFile () |
| void | startWait () |
Protected Member Functions | |
| void | run () |
Private Attributes | |
| QString | m_Name |
| QseInputFile * | m_Data |
| QMutex | m_Mutex |
| QWaitCondition | m_Started |
| QWaitCondition | m_NewFile |
| bool | m_Abort |
| bool | m_Restart |
| QStringList | m_FileNames |
| int | m_Changed |
Definition at line 15 of file qsefilereader.h.
| typedef QThread QseFileReader::inherited |
Definition at line 23 of file qsefilereader.h.
| QseFileReader::QseFileReader | ( | const QString & | name, | |
| QObject * | parent = 0 | |||
| ) |
Definition at line 8 of file qsefilereader.cpp.
References m_Mutex, and m_Started.
00009 : inherited(parent), 00010 m_Name(name), 00011 m_Data(NULL), 00012 m_Abort(false), 00013 m_Restart(false), 00014 m_Changed(false) 00015 { 00016 // printf("file reader constructed\n"); 00017 00018 m_Mutex.lock(); 00019 00020 start(); 00021 00022 m_Started.wait(&m_Mutex); 00023 m_Mutex.unlock(); 00024 }
| QseFileReader::~QseFileReader | ( | ) |
| QseInputFile * QseFileReader::inputFile | ( | ) |
Definition at line 129 of file qsefilereader.cpp.
References m_Data, and m_Mutex.
Referenced by QseDataFlow::run().
| void QseFileReader::startWait | ( | ) |
| void QseFileReader::openFile | ( | QString | fileName | ) | [slot] |
Definition at line 48 of file qsefilereader.cpp.
References m_FileNames, m_Mutex, m_NewFile, and m_Restart.
00049 { 00050 m_Mutex.lock(); 00051 00052 m_FileNames.clear(); 00053 m_FileNames.append(fileName); 00054 m_Restart = true; 00055 00056 m_Mutex.unlock(); 00057 00058 m_NewFile.wakeOne(); 00059 }
| void QseFileReader::appendFile | ( | QString | fileName | ) | [slot] |
Definition at line 61 of file qsefilereader.cpp.
References m_FileNames, m_Mutex, and m_NewFile.
00062 { 00063 m_Mutex.lock(); 00064 00065 m_FileNames.append(fileName); 00066 00067 m_Mutex.unlock(); 00068 00069 m_NewFile.wakeOne(); 00070 }
| void QseFileReader::run | ( | ) | [protected] |
Definition at line 72 of file qsefilereader.cpp.
References QseDataSet::emitLoadCompleted(), m_Abort, m_Changed, m_Data, m_FileNames, m_Mutex, m_Name, m_NewFile, m_Restart, and m_Started.
00073 { 00074 m_Mutex.lock(); 00075 m_Data = new QseInputFile(m_Name); 00076 m_Mutex.unlock(); 00077 00078 m_Started.wakeOne(); 00079 00080 m_Mutex.lock(); 00081 m_NewFile.wait(&m_Mutex); 00082 m_Mutex.unlock(); 00083 00084 // printf("CurrentThread: %p ReaderThread: %p DataSetThread: %p\n", 00085 // QThread::currentThread(), this->thread(), m_Data->thread()); 00086 00087 forever { 00088 m_Mutex.lock(); 00089 int atend = m_Data -> atEnd(); 00090 int nfiles = m_FileNames.size(); 00091 m_Mutex.unlock(); 00092 00093 if (m_Abort) return; 00094 00095 m_Mutex.lock(); 00096 00097 if (m_Restart || atend) { 00098 if (m_Restart) { 00099 m_Data -> clear(); 00100 m_Restart = false; 00101 m_Changed = true; 00102 } 00103 00104 if (nfiles) { 00105 QString nextFile = m_FileNames.takeFirst(); 00106 // printf("next data file\n"); 00107 00108 m_Data -> nextDataFile(nextFile); 00109 m_Changed = true; 00110 } else { 00111 if (m_Changed) { 00112 m_Data->emitLoadCompleted(); 00113 m_Changed = false; 00114 } 00115 00116 m_NewFile.wait(&m_Mutex, 1000); 00117 } 00118 } else if (!atend) { 00119 m_Data -> nextInputLine(); 00120 m_Changed = true; 00121 } 00122 00123 m_Mutex.unlock(); 00124 } 00125 00126 delete m_Data; 00127 }

QString QseFileReader::m_Name [private] |
QseInputFile* QseFileReader::m_Data [private] |
QMutex QseFileReader::m_Mutex [private] |
Definition at line 38 of file qsefilereader.h.
Referenced by appendFile(), inputFile(), openFile(), QseFileReader(), run(), startWait(), and ~QseFileReader().
QWaitCondition QseFileReader::m_Started [private] |
Definition at line 39 of file qsefilereader.h.
Referenced by QseFileReader(), run(), and startWait().
QWaitCondition QseFileReader::m_NewFile [private] |
Definition at line 40 of file qsefilereader.h.
Referenced by appendFile(), openFile(), run(), and ~QseFileReader().
bool QseFileReader::m_Abort [private] |
bool QseFileReader::m_Restart [private] |
QStringList QseFileReader::m_FileNames [private] |
int QseFileReader::m_Changed [private] |
1.5.5