00001 #ifndef QSESCAN_H 00002 #define QSESCAN_H 00003 00004 #include <QObject> 00005 #include <QList> 00006 #include <QStringList> 00007 #include <QMutex> 00008 #include <QDateTime> 00009 00010 #include "qsecolumn.h" 00011 00012 class QseDataSet; 00013 00014 class QseScan : public QObject 00015 { 00016 Q_OBJECT; 00017 00018 public: 00019 QseScan(const char *name); 00020 ~QseScan(); 00021 00022 typedef enum { 00023 UnspecifiedRole = -1, 00024 NotUsedRole, 00025 UsedRole } QseScanRole; 00026 00027 QString name() const; 00028 void setName(QString name); 00029 00030 int columnCount() const; 00031 void setColumnCount(int n); 00032 00033 int maxRowCount() const; 00034 void setRowCount(int n); 00035 00036 void clear(); 00037 00038 QseColumn* column(int n) const; 00039 QseColumn* column(const QString& nm) const; 00040 00041 QseColumn* appendColumn(); 00042 00043 void setColumnNames(const char *nms); 00044 void appendHeader(const QString& h); 00045 void appendData(const char *l); 00046 00047 QseColumn *appendColumn(const QString &name, const QseColumn *proto = NULL); 00048 00049 QString scanCommand() const; 00050 00051 QseScanRole scanRole() const; 00052 void setScanRole(const QseScanRole r); 00053 void setDefaultRoles(); 00054 00055 void writeScan(const QString &name); 00056 00057 QStringList header() const; 00058 void mergeHeaders(const QStringList& hdr); 00059 00060 QDateTime scanDateTime() const; 00061 void setScanDateTime(const QDateTime& datetime); 00062 00063 int scanNumber() const; 00064 void setScanNumber(int n); 00065 00066 private: 00067 QStringList m_Header; 00068 QList<QseColumn*> m_Columns; 00069 QList<QseColumn*> m_SpareColumns; 00070 QseScanRole m_Role; 00071 QString m_Name; 00072 mutable QMutex m_Mutex; 00073 QDateTime m_ScanDateTime; 00074 int m_ScanNumber; 00075 }; 00076 00077 #endif
1.5.5