Qx v0.7
Qt Extensions Library
Loading...
Searching...
No Matches
qx-textstreamreader.h
1#ifndef QX_TEXTSTREAMREADER_H
2#define QX_TEXTSTREAMREADER_H
3
4// Shared Lib Support
5#include "qx/io/qx_io_export.h"
6
7// Qt Includes
8#include <QTextStream>
9#include <QFile>
10
11// Intra-component Includes
12#include "qx/io/qx-common-io.h"
13#include "qx/io/qx-ioopreport.h"
14
15namespace Qx
16{
17
18class QX_IO_EXPORT TextStreamReader
19{
20//-Instance Variables------------------------------------------------------------------------------------------------
21private:
22 QFile* mFile;
23 QTextStream mStreamReader;
24 IoOpReport mStatus;
25
26//-Constructor-------------------------------------------------------------------------------------------------------
27public:
29 TextStreamReader(const QString& filePath);
30
31//-Destructor-------------------------------------------------------------------------------------------------------
32public:
34
35//-Instance Functions------------------------------------------------------------------------------------------------
36private:
37 IoOpReport statusFromNative();
38 IoOpReport preReadErrorCheck();
39 void setFile(const QString& filePath);
40 void unsetFile();
41
42public:
43 // Stock functions
44 bool atEnd() const;
45 bool autoDetectUnicode() const;
46 QStringConverter::Encoding encoding() const;
47 const QFile* file() const;
48 int integerBase() const;
49 QLocale locale() const;
50 qint64 pos() const;
51 QString read(qint64 maxlen);
52 QString readAll();
53 QString readLine(qint64 maxlen = 0);
54 IoOpReport readLineInto(QString* line, qint64 maxlen = 0);
55 QTextStream::RealNumberNotation realNumberNotation() const;
56 void reset();
57 void resetStatus();
58 void setAutoDetectUnicode(bool enabled);
59 void setEncoding(QStringConverter::Encoding encoding);
60 void setIntegerBase(int base);
61 void setLocale(const QLocale& locale);
62 void setRealNumberNotation(QTextStream::RealNumberNotation notation);
63 void skipWhiteSpace();
64 IoOpReport status() const;
65
66 template<typename T>
69 {
70 IoOpReport check = preReadErrorCheck();
71
72 if(!check.isFailure())
73 {
74 mStreamReader >> d;
75 mStatus = statusFromNative();
76 }
77
78 return *this;
79 }
80
81 QString filePath() const;
82 void setFilePath(const QString& filePath);
83
84 // New functions
85 bool hasError() const;
86 IoOpReport openFile();
87 void closeFile();
88 bool fileIsOpen() const;
89};
90
91}
92#endif // QX_TEXTSTREAMREADER_H
The IoOpReport class is a container for details regarding the outcome of an IO operation.
Definition qx-ioopreport.h:53
bool isFailure() const
Definition qx-ioopreport.cpp:390
qint64 pos() const
Definition qx-textstreamreader.cpp:142
bool atEnd() const
Definition qx-textstreamreader.cpp:97
const QFile * file() const
Definition qx-textstreamreader.cpp:119
void setIntegerBase(int base)
Definition qx-textstreamreader.cpp:318
int integerBase() const
Definition qx-textstreamreader.cpp:126
void setRealNumberNotation(QTextStream::RealNumberNotation notation)
Definition qx-textstreamreader.cpp:337
IoOpReport readLineInto(QString *line, qint64 maxlen=0)
Definition qx-textstreamreader.cpp:228
QString filePath() const
Definition qx-textstreamreader.cpp:403
QTextStream::RealNumberNotation realNumberNotation() const
Definition qx-textstreamreader.cpp:269
void setAutoDetectUnicode(bool enabled)
Definition qx-textstreamreader.cpp:302
void resetStatus()
Definition qx-textstreamreader.cpp:286
QString readLine(qint64 maxlen=0)
Definition qx-textstreamreader.cpp:196
QLocale locale() const
Definition qx-textstreamreader.cpp:133
void setLocale(const QLocale &locale)
Definition qx-textstreamreader.cpp:329
TextStreamReader & operator>>(T &d)
Definition qx-textstreamreader.h:68
QString readAll()
Definition qx-textstreamreader.cpp:169
IoOpReport status() const
Definition qx-textstreamreader.cpp:364
void reset()
Definition qx-textstreamreader.cpp:275
TextStreamReader()
Definition qx-textstreamreader.cpp:35
void setEncoding(QStringConverter::Encoding encoding)
Definition qx-textstreamreader.cpp:310
void skipWhiteSpace()
Definition qx-textstreamreader.cpp:347
bool autoDetectUnicode() const
Definition qx-textstreamreader.cpp:105
QString read(qint64 maxlen)
Definition qx-textstreamreader.cpp:149
QStringConverter::Encoding encoding() const
Definition qx-textstreamreader.cpp:112
Specifies that a type defines a right shift operator for another type.
Definition qx-concepts.h:395
The Qx namespace is the main namespace through which all non-global functionality of the Qx library i...
Definition qx-abstracterror.cpp:13
The qx-common-io header file provides various types, variables, and functions related to file IO.