libodsstream
Library for mass spectrometry
Loading...
Searching...
No Matches
ZipTsvOutputStream Class Reference

#include <ziptsvoutputstream.h>

Inheritance diagram for ZipTsvOutputStream:
TsvDirectoryWriter CalcWriterInterface

Public Member Functions

 ZipTsvOutputStream (const QString &zipfilename)
 
virtual ~ZipTsvOutputStream ()
 
virtual void writeSheet (const QString &sheetName) override
 open a new sheet
 
void close () override
 
- Public Member Functions inherited from TsvDirectoryWriter
 TsvDirectoryWriter (const QDir &directory)
 
virtual ~TsvDirectoryWriter ()
 
void writeLine () override
 open a new line
 
void writeCell (const char *) override
 write a text cell
 
void writeCell (const QString &) override
 write a text cell
 
void writeEmptyCell () override
 write an empty cell
 
void writeCell (std::size_t) override
 write an unsigned integer in a cell
 
void writeCell (int) override
 write an integer in a cell
 
void writeCell (float) override
 write a float in a cell
 
void writeCell (double) override
 write a double in a cell
 
void writeCellPercentage (double value) override
 write a double as a percentage
 
void writeCell (bool) override
 write a boolean in a cell
 
void writeCell (const QDate &) override
 write a date in a cell
 
void writeCell (const QDateTime &) override
 write a timestamp in a cell
 
void writeCell (const QUrl &, const QString &) override
 write a text cell with an URL link
 
void setCellAnnotation (const QString &annotation) override
 set annotation to write in the next cell
 
void setSeparator (TsvSeparator separator)
 sets the separator to use between values (cells)
 
TsvSeparator getSeparator () const
 get the separator used between values (cells)
 
bool setQuoteStrings (bool quote_strings)
 set a flag to quote strings
 
bool isQuoteStrings () const
 tells if the quote string flag is enabled
 
bool setFlushLines (bool flushOk)
 enable a physical flush on device at each new line enables this if you want to ensure that each line is written. This costs a little overhead
 
bool isFlushLines () const
 tells if the flush lines flag is enabled
 
- Public Member Functions inherited from CalcWriterInterface
virtual ~CalcWriterInterface ()
 
virtual OdsTableCellStyleRef getTableCellStyleRef (const OdsTableCellStyle &style)
 
virtual void setTableCellStyleRef (OdsTableCellStyleRef style_ref)
 
void clearTableCellStyleRef ()
 
virtual void addColorScale (const OdsColorScale &ods_color_scale)
 apply solor scale conditional format on a cell range
 
virtual QString getOdsCellCoordinate ()
 get the last written cell coordinate in ODS coordinate format get the coordinate of the last written cell or an empty string if the writer is not an OdsDocWriter
 
virtual void setCurrentOdsTableSettings (const OdsTableSettings &settings)
 set ODS table settings of the current sheet (table)
 
virtual void writeCellVariant (const QVariant &var)
 write a cell for a given QVariant
 

Private Member Functions

void closeCurrentZipSheet ()
 

Private Attributes

QFile * mpa_fileZipArchive = nullptr
 
QuaZip * mpa_quaZip = nullptr
 
QuaZipFile * mpa_outFileInZip = nullptr
 

Additional Inherited Members

- Protected Member Functions inherited from TsvDirectoryWriter
 TsvDirectoryWriter ()
 
void writeRawCell (const QString &text)
 
void initializeSheet ()
 
- Protected Attributes inherited from TsvDirectoryWriter
QString m_separator = "\t"
 
QString _end_of_line = "\n"
 
QTextStream * mpa_otxtstream = nullptr
 
unsigned int numFloatPrecision = 12
 

Detailed Description

Todo:
write docs

Definition at line 37 of file ziptsvoutputstream.h.

Constructor & Destructor Documentation

◆ ZipTsvOutputStream()

ZipTsvOutputStream::ZipTsvOutputStream ( const QString &  zipfilename)

Default constructor

Definition at line 34 of file ziptsvoutputstream.cpp.

36{
37
38 qDebug();
39 mpa_fileZipArchive = new QFile(zipfilename);
40
41 if(mpa_fileZipArchive->open(QIODevice::WriteOnly))
42 {
43 }
44 else
45 {
46 throw OdsException(
47 QString("unable to write into ZIP file %1")
48 .arg(QFileInfo(*mpa_fileZipArchive).absoluteFilePath()));
49 }
50
51 qDebug();
52 mpa_quaZip = new QuaZip(mpa_fileZipArchive);
53 bool open_ok = mpa_quaZip->open(QuaZip::mdCreate);
54
55 if(open_ok == false)
56 {
57 throw OdsException(QObject::tr("error opening ZIP file."));
58 }
59
60 //_p_writer = new QXmlStreamWriter(&outFile);
61 qDebug();
62}

References mpa_fileZipArchive, and mpa_quaZip.

◆ ~ZipTsvOutputStream()

ZipTsvOutputStream::~ZipTsvOutputStream ( )
virtual

Destructor

Definition at line 65 of file ziptsvoutputstream.cpp.

66{
67 qDebug();
69 close();
70 qDebug();
71}

References close(), and closeCurrentZipSheet().

Member Function Documentation

◆ close()

void ZipTsvOutputStream::close ( )
overridevirtual

Reimplemented from TsvDirectoryWriter.

Definition at line 74 of file ziptsvoutputstream.cpp.

75{
76
77 qDebug();
78
81 if(mpa_quaZip != nullptr)
82 {
83 qDebug();
84 mpa_quaZip->close();
85 delete mpa_quaZip;
86 mpa_quaZip = nullptr;
87 }
88 if(mpa_fileZipArchive != nullptr)
89 {
90 qDebug();
91 mpa_fileZipArchive->close();
92 delete mpa_fileZipArchive;
93 mpa_fileZipArchive = nullptr;
94 }
95 qDebug();
96}
virtual void close() override

References TsvDirectoryWriter::close(), closeCurrentZipSheet(), mpa_fileZipArchive, and mpa_quaZip.

Referenced by ~ZipTsvOutputStream().

◆ closeCurrentZipSheet()

void ZipTsvOutputStream::closeCurrentZipSheet ( )
private

Definition at line 100 of file ziptsvoutputstream.cpp.

101{
102
103 qDebug();
104 if(mpa_outFileInZip != nullptr)
105 {
106 qDebug();
107 if(mpa_otxtstream != nullptr)
108 {
109 mpa_otxtstream->flush();
110 }
111 mpa_outFileInZip->close();
112 qDebug();
113 delete mpa_outFileInZip;
114 mpa_outFileInZip = nullptr;
115 qDebug();
116 }
117 qDebug();
118}
QTextStream * mpa_otxtstream
QuaZipFile * mpa_outFileInZip

References TsvDirectoryWriter::mpa_otxtstream, and mpa_outFileInZip.

Referenced by ~ZipTsvOutputStream(), close(), and writeSheet().

◆ writeSheet()

void ZipTsvOutputStream::writeSheet ( const QString &  sheetName)
overridevirtual

open a new sheet

Parameters
sheetNamethe sheet name

Reimplemented from TsvDirectoryWriter.

Definition at line 122 of file ziptsvoutputstream.cpp.

123{
124
125 qDebug();
127 if(mpa_outFileInZip == nullptr)
128 {
129 mpa_outFileInZip = new QuaZipFile(mpa_quaZip);
130 QuaZipNewInfo info(QString("%1.tsv").arg(sheetName));
131 info.setPermissions(QFileDevice::ReadOwner | QFileDevice::WriteOwner |
132 QFileDevice::ReadGroup);
133
134 if(mpa_outFileInZip->open(QIODevice::WriteOnly, info))
135 {
136 mpa_otxtstream = new QTextStream(mpa_outFileInZip);
137 }
138 else
139 {
140 throw OdsException(
141 QString("unable to write into file %1 new sheet %2")
142 .arg(QFileInfo(*mpa_fileZipArchive).absoluteFilePath())
143 .arg(sheetName));
144 }
145 }
146 else
147 {
148 throw OdsException(QString("mpa_outFileInZip == nullptr"));
149 }
151 qDebug();
152}

References closeCurrentZipSheet(), TsvDirectoryWriter::initializeSheet(), TsvDirectoryWriter::mpa_otxtstream, mpa_outFileInZip, and mpa_quaZip.

Member Data Documentation

◆ mpa_fileZipArchive

QFile* ZipTsvOutputStream::mpa_fileZipArchive = nullptr
private

Definition at line 62 of file ziptsvoutputstream.h.

Referenced by ZipTsvOutputStream(), and close().

◆ mpa_outFileInZip

QuaZipFile* ZipTsvOutputStream::mpa_outFileInZip = nullptr
private

Definition at line 64 of file ziptsvoutputstream.h.

Referenced by closeCurrentZipSheet(), and writeSheet().

◆ mpa_quaZip

QuaZip* ZipTsvOutputStream::mpa_quaZip = nullptr
private

Definition at line 63 of file ziptsvoutputstream.h.

Referenced by ZipTsvOutputStream(), close(), and writeSheet().


The documentation for this class was generated from the following files: