libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::TimsFrameRawDataChunck Class Reference

#include <timsframerawdatachunck.h>

Public Member Functions

 TimsFrameRawDataChunck ()
virtual ~TimsFrameRawDataChunck ()
bool readTimsFrame (QFile *p_file, std::size_t frameId, const std::vector< pappso::TimsFrameRecord > &frame_record_list)
quint32 getFrameNumberOfScans () const
quint32 getCompressedSize () const
quint32 getFrameLength () const
char * getMemoryBuffer () const
std::size_t getFrameId () const

Private Attributes

char * mpa_memoryBuffer = nullptr
qint64 m_memoryBufferSize = 0
std::size_t m_frameId = 0
quint32 m_frameLength = 0
quint32 m_frameNumberOfScans = 0

Detailed Description

Todo
write docs

Definition at line 40 of file timsframerawdatachunck.h.

Constructor & Destructor Documentation

◆ TimsFrameRawDataChunck()

TimsFrameRawDataChunck::TimsFrameRawDataChunck ( )

Default constructor

Definition at line 36 of file timsframerawdatachunck.cpp.

37{
38}

◆ ~TimsFrameRawDataChunck()

TimsFrameRawDataChunck::~TimsFrameRawDataChunck ( )
virtual

Destructor

Definition at line 40 of file timsframerawdatachunck.cpp.

41{
42 if(mpa_memoryBuffer != nullptr)
43 delete[] mpa_memoryBuffer;
44}

References mpa_memoryBuffer.

Member Function Documentation

◆ getCompressedSize()

quint32 pappso::TimsFrameRawDataChunck::getCompressedSize ( ) const

Definition at line 186 of file timsframerawdatachunck.cpp.

187{
188 return m_frameLength - 8;
189}

References m_frameLength.

Referenced by pappso::TimsBinDec::getTimsFrameFromRawDataChunck().

◆ getFrameId()

std::size_t pappso::TimsFrameRawDataChunck::getFrameId ( ) const

Definition at line 204 of file timsframerawdatachunck.cpp.

205{
206 return m_frameId;
207}

References m_frameId.

Referenced by pappso::TimsBinDec::getTimsFrameFromRawDataChunck().

◆ getFrameLength()

quint32 pappso::TimsFrameRawDataChunck::getFrameLength ( ) const

Definition at line 198 of file timsframerawdatachunck.cpp.

199{
200 return m_frameLength;
201}

References m_frameLength.

Referenced by pappso::TimsBinDec::getTimsFrameFromRawDataChunck().

◆ getFrameNumberOfScans()

quint32 pappso::TimsFrameRawDataChunck::getFrameNumberOfScans ( ) const

◆ getMemoryBuffer()

char * pappso::TimsFrameRawDataChunck::getMemoryBuffer ( ) const

Definition at line 180 of file timsframerawdatachunck.cpp.

181{
182 return mpa_memoryBuffer;
183}

References mpa_memoryBuffer.

Referenced by pappso::TimsBinDec::getTimsFrameFromRawDataChunck().

◆ readTimsFrame()

bool TimsFrameRawDataChunck::readTimsFrame ( QFile * p_file,
std::size_t frameId,
const std::vector< pappso::TimsFrameRecord > & frame_record_list )

Definition at line 47 of file timsframerawdatachunck.cpp.

50{
51
52 m_frameId = frameId;
53 qint64 position = p_file->pos();
54 const pappso::TimsFrameRecord &frame_record = frame_record_list[frameId];
55 if(frameId == 1)
56 {
57 bool seekpos_ok = p_file->seek(frame_record.tims_offset);
58 if(!seekpos_ok)
59 {
60 throw PappsoException(QObject::tr("ERROR reading TIMS frame %1 "
61 "m_timsBinFile.seek(%3) failed")
62 .arg(frameId)
63 .arg(frame_record.tims_offset));
64 }
65 }
66 else
67 {
68
69 if(position == (qint64)frame_record.tims_offset)
70 {
71 // OK
72 }
73 else
74 {
75 // need to move to frame position :
76 if(position > (qint64)frame_record.tims_offset)
77 {
78 // get back
79 p_file->seek(frame_record.tims_offset);
80 position = p_file->pos();
81 }
82 else
83 {
84 const pappso::TimsFrameRecord &previous_frame_record = frame_record_list[frameId - 1];
85 if(position < (qint64)previous_frame_record.tims_offset)
86 {
87
88 throw PappsoException(QObject::tr("ERROR reading TIMS frame %1 "
89 "file position %2 is before previous frame %3")
90 .arg(frameId)
91 .arg(position)
92 .arg(previous_frame_record.tims_offset));
93 }
94 else
95 {
96 // catch up current position
97 qint64 move_size = (qint64)frame_record.tims_offset - position;
98 p_file->read(move_size);
99 position = p_file->pos();
100 }
101 }
102 }
103 }
104
105 if(position != (qint64)frame_record.tims_offset)
106 {
107
108 throw PappsoException(QObject::tr("ERROR reading TIMS frame %1 "
109 "file position %2 is different of frame offset %3")
110 .arg(frameId)
111 .arg(position)
112 .arg(frame_record.tims_offset));
113 }
114 // qDebug();
115 p_file->read((char *)&m_frameLength, 4);
116 // frame_length = qToBigEndian(frame_length);
117
118 // qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__
119 // << " frame_length=" << frame_length;
120
121 // qDebug();
122 p_file->read((char *)&m_frameNumberOfScans, 4);
123 // scan_number = qToBigEndian(scan_number);
124
125 // qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__
126 // << " pos=" << m_timsBinFile.pos();
127
128 // qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__
129 // << " scan_number=" << scan_number;
130 // m_timsBinFile.seek(m_indexArray.at(timsId) + 8);
131
132
133 // qDebug();
134
135 // if (m_memoryBufferSize
136 if(mpa_memoryBuffer == nullptr)
137 {
138 qDebug() << "mpa_memoryBuffer == nullptr";
139 m_memoryBufferSize = (qint64)m_frameLength + 10;
141 }
143 {
144 if(mpa_memoryBuffer != nullptr)
145 {
146 delete[] mpa_memoryBuffer;
147 }
148 m_memoryBufferSize = (qint64)m_frameLength + 10;
150 }
151
152
153 // QByteArray frame_byte_array(mpa_memoryBuffer, m_memoryBufferSize);
154
155 // qDebug();
156 qint64 read_length = p_file->read(mpa_memoryBuffer, (qint64)m_frameLength - 8);
157 // qDebug();
158
159 // qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__
160 // << " +frame_length-1="
161 // << (quint8) * (frame_byte_array.constData() + frame_length - 1);
162 // qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__
163 // << " +frame_length="
164 // << (quint8) * (frame_byte_array.constData() + frame_length);
165 // m_timsBinFile.seek(m_indexArray.at(timsId) + 8);
166
167 if(read_length + 8 != (qint64)m_frameLength)
168 {
169 throw PappsoException(QObject::tr("ERROR reading TIMS frame %1: "
170 "read_length=%2 != %3frame_length")
171 .arg(frameId)
172 .arg(read_length)
173 .arg(m_frameLength));
174 }
175
176 return true;
177}

References m_frameId, m_frameLength, m_frameNumberOfScans, m_memoryBufferSize, mpa_memoryBuffer, and pappso::TimsFrameRecord::tims_offset.

Member Data Documentation

◆ m_frameId

std::size_t pappso::TimsFrameRawDataChunck::m_frameId = 0
private

Definition at line 70 of file timsframerawdatachunck.h.

Referenced by getFrameId(), and readTimsFrame().

◆ m_frameLength

quint32 pappso::TimsFrameRawDataChunck::m_frameLength = 0
private

Definition at line 71 of file timsframerawdatachunck.h.

Referenced by getCompressedSize(), getFrameLength(), and readTimsFrame().

◆ m_frameNumberOfScans

quint32 pappso::TimsFrameRawDataChunck::m_frameNumberOfScans = 0
private

Definition at line 72 of file timsframerawdatachunck.h.

Referenced by getFrameNumberOfScans(), and readTimsFrame().

◆ m_memoryBufferSize

qint64 pappso::TimsFrameRawDataChunck::m_memoryBufferSize = 0
private

Definition at line 68 of file timsframerawdatachunck.h.

Referenced by readTimsFrame().

◆ mpa_memoryBuffer

char* pappso::TimsFrameRawDataChunck::mpa_memoryBuffer = nullptr
private

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