io/qnoncontiguousbytedevice.cpp

Switch to Source codePreprocessed file
LineSource CodeCoverage
1 -
2 -
3QNonContiguousByteDevice::QNonContiguousByteDevice() : QObject((QObject*)0), resetDisabled(false) -
4{ -
5}
executed: }
Execution Count:425
425
6 -
7QNonContiguousByteDevice::~QNonContiguousByteDevice() -
8{ -
9} -
10 -
11void QNonContiguousByteDevice::disableReset() -
12{ -
13 resetDisabled = true; -
14}
executed: }
Execution Count:2
2
15 -
16 -
17QNonContiguousByteDeviceBufferImpl::QNonContiguousByteDeviceBufferImpl(QBuffer *b) : QNonContiguousByteDevice() -
18{ -
19 buffer = b; -
20 byteArray = QByteArray::fromRawData(buffer->buffer().constData() + buffer->pos(), buffer->size() - buffer->pos()); -
21 arrayImpl = new QNonContiguousByteDeviceByteArrayImpl(&byteArray); -
22 arrayImpl->setParent(this); -
23 connect(arrayImpl, "2""readyRead()", "2""readyRead()"); -
24 connect(arrayImpl, "2""readProgress(qint64,qint64)", "2""readProgress(qint64,qint64)"); -
25}
executed: }
Execution Count:58
58
26 -
27QNonContiguousByteDeviceBufferImpl::~QNonContiguousByteDeviceBufferImpl() -
28{ -
29} -
30 -
31const char* QNonContiguousByteDeviceBufferImpl::readPointer(qint64 maximumLength, qint64 &len) -
32{ -
33 return arrayImpl->readPointer(maximumLength, len);
executed: return arrayImpl->readPointer(maximumLength, len);
Execution Count:1013
1013
34} -
35 -
36bool QNonContiguousByteDeviceBufferImpl::advanceReadPointer(qint64 amount) -
37{ -
38 return arrayImpl->advanceReadPointer(amount);
executed: return arrayImpl->advanceReadPointer(amount);
Execution Count:992
992
39} -
40 -
41bool QNonContiguousByteDeviceBufferImpl::atEnd() -
42{ -
43 return arrayImpl->atEnd();
executed: return arrayImpl->atEnd();
Execution Count:753
753
44} -
45 -
46bool QNonContiguousByteDeviceBufferImpl::reset() -
47{ -
48 if (resetDisabled)
partially evaluated: resetDisabled
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
49 return false;
never executed: return false;
0
50 return arrayImpl->reset();
executed: return arrayImpl->reset();
Execution Count:4
4
51} -
52 -
53qint64 QNonContiguousByteDeviceBufferImpl::size() -
54{ -
55 return arrayImpl->size();
executed: return arrayImpl->size();
Execution Count:802
802
56} -
57 -
58QNonContiguousByteDeviceByteArrayImpl::QNonContiguousByteDeviceByteArrayImpl(QByteArray *ba) : QNonContiguousByteDevice(), currentPosition(0) -
59{ -
60 byteArray = ba; -
61}
executed: }
Execution Count:58
58
62 -
63QNonContiguousByteDeviceByteArrayImpl::~QNonContiguousByteDeviceByteArrayImpl() -
64{ -
65} -
66 -
67const char* QNonContiguousByteDeviceByteArrayImpl::readPointer(qint64 maximumLength, qint64 &len) -
68{ -
69 if (atEnd()) {
evaluated: atEnd()
TRUEFALSE
yes
Evaluation Count:20
yes
Evaluation Count:993
20-993
70 len = -1; -
71 return 0;
executed: return 0;
Execution Count:20
20
72 } -
73 -
74 if (maximumLength != -1)
evaluated: maximumLength != -1
TRUEFALSE
yes
Evaluation Count:987
yes
Evaluation Count:6
6-987
75 len = qMin(maximumLength, size() - currentPosition);
executed: len = qMin(maximumLength, size() - currentPosition);
Execution Count:987
987
76 else -
77 len = size() - currentPosition;
executed: len = size() - currentPosition;
Execution Count:6
6
78 -
79 return byteArray->constData() + currentPosition;
executed: return byteArray->constData() + currentPosition;
Execution Count:993
993
80} -
81 -
82bool QNonContiguousByteDeviceByteArrayImpl::advanceReadPointer(qint64 amount) -
83{ -
84 currentPosition += amount; -
85 readProgress(currentPosition, size()); -
86 return true;
executed: return true;
Execution Count:992
992
87} -
88 -
89bool QNonContiguousByteDeviceByteArrayImpl::atEnd() -
90{ -
91 return currentPosition >= size();
executed: return currentPosition >= size();
Execution Count:1766
1766
92} -
93 -
94bool QNonContiguousByteDeviceByteArrayImpl::reset() -
95{ -
96 if (resetDisabled)
partially evaluated: resetDisabled
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
97 return false;
never executed: return false;
0
98 -
99 currentPosition = 0; -
100 return true;
executed: return true;
Execution Count:4
4
101} -
102 -
103qint64 QNonContiguousByteDeviceByteArrayImpl::size() -
104{ -
105 return byteArray->size();
executed: return byteArray->size();
Execution Count:4553
4553
106} -
107 -
108QNonContiguousByteDeviceRingBufferImpl::QNonContiguousByteDeviceRingBufferImpl(QSharedPointer<QRingBuffer> rb) -
109 : QNonContiguousByteDevice(), currentPosition(0) -
110{ -
111 ringBuffer = rb; -
112}
executed: }
Execution Count:101
101
113 -
114QNonContiguousByteDeviceRingBufferImpl::~QNonContiguousByteDeviceRingBufferImpl() -
115{ -
116} -
117 -
118const char* QNonContiguousByteDeviceRingBufferImpl::readPointer(qint64 maximumLength, qint64 &len) -
119{ -
120 if (atEnd()) {
partially evaluated: atEnd()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:954
0-954
121 len = -1; -
122 return 0;
never executed: return 0;
0
123 } -
124 -
125 const char *returnValue = ringBuffer->readPointerAtPosition(currentPosition, len); -
126 -
127 if (maximumLength != -1)
partially evaluated: maximumLength != -1
TRUEFALSE
yes
Evaluation Count:954
no
Evaluation Count:0
0-954
128 len = qMin(len, maximumLength);
executed: len = qMin(len, maximumLength);
Execution Count:954
954
129 -
130 return returnValue;
executed: return returnValue;
Execution Count:954
954
131} -
132 -
133bool QNonContiguousByteDeviceRingBufferImpl::advanceReadPointer(qint64 amount) -
134{ -
135 currentPosition += amount; -
136 readProgress(currentPosition, size()); -
137 return true;
executed: return true;
Execution Count:954
954
138} -
139 -
140bool QNonContiguousByteDeviceRingBufferImpl::atEnd() -
141{ -
142 return currentPosition >= size();
executed: return currentPosition >= size();
Execution Count:1252
1252
143} -
144 -
145bool QNonContiguousByteDeviceRingBufferImpl::reset() -
146{ -
147 if (resetDisabled)
partially evaluated: resetDisabled
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:126
0-126
148 return false;
never executed: return false;
0
149 -
150 currentPosition = 0; -
151 return true;
executed: return true;
Execution Count:126
126
152} -
153 -
154qint64 QNonContiguousByteDeviceRingBufferImpl::size() -
155{ -
156 return ringBuffer->size();
executed: return ringBuffer->size();
Execution Count:2586
2586
157} -
158 -
159QNonContiguousByteDeviceIoDeviceImpl::QNonContiguousByteDeviceIoDeviceImpl(QIODevice *d) -
160 : QNonContiguousByteDevice(), -
161 currentReadBuffer(0), currentReadBufferSize(16*1024), -
162 currentReadBufferAmount(0), currentReadBufferPosition(0), totalAdvancements(0), -
163 eof(false) -
164{ -
165 device = d; -
166 initialPosition = d->pos(); -
167 connect(device, "2""readyRead()", this, "2""readyRead()", Qt::QueuedConnection); -
168 connect(device, "2""readChannelFinished()", this, "2""readyRead()", Qt::QueuedConnection); -
169}
executed: }
Execution Count:70
70
170 -
171QNonContiguousByteDeviceIoDeviceImpl::~QNonContiguousByteDeviceIoDeviceImpl() -
172{ -
173 delete currentReadBuffer; -
174}
executed: }
Execution Count:70
70
175 -
176const char* QNonContiguousByteDeviceIoDeviceImpl::readPointer(qint64 maximumLength, qint64 &len) -
177{ -
178 if (eof == true) {
evaluated: eof == true
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:1658
3-1658
179 len = -1; -
180 return 0;
executed: return 0;
Execution Count:3
3
181 } -
182 -
183 if (currentReadBuffer == 0)
evaluated: currentReadBuffer == 0
TRUEFALSE
yes
Evaluation Count:68
yes
Evaluation Count:1590
68-1590
184 currentReadBuffer = new QByteArray(currentReadBufferSize, '\0');
executed: currentReadBuffer = new QByteArray(currentReadBufferSize, '\0');
Execution Count:68
68
185 -
186 if (maximumLength == -1)
evaluated: maximumLength == -1
TRUEFALSE
yes
Evaluation Count:718
yes
Evaluation Count:940
718-940
187 maximumLength = currentReadBufferSize;
executed: maximumLength = currentReadBufferSize;
Execution Count:718
718
188 -
189 if (currentReadBufferAmount - currentReadBufferPosition > 0) {
partially evaluated: currentReadBufferAmount - currentReadBufferPosition > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1658
0-1658
190 len = currentReadBufferAmount - currentReadBufferPosition; -
191 return currentReadBuffer->data() + currentReadBufferPosition;
never executed: return currentReadBuffer->data() + currentReadBufferPosition;
0
192 } -
193 -
194 qint64 haveRead = device->read(currentReadBuffer->data(), qMin(maximumLength, currentReadBufferSize)); -
195 -
196 if ((haveRead == -1) || (haveRead == 0 && device->atEnd() && !device->isSequential())) {
evaluated: (haveRead == -1)
TRUEFALSE
yes
Evaluation Count:28
yes
Evaluation Count:1630
evaluated: haveRead == 0
TRUEFALSE
yes
Evaluation Count:119
yes
Evaluation Count:1511
evaluated: device->atEnd()
TRUEFALSE
yes
Evaluation Count:117
yes
Evaluation Count:2
evaluated: !device->isSequential()
TRUEFALSE
yes
Evaluation Count:8
yes
Evaluation Count:109
2-1630
197 eof = true; -
198 len = -1; -
199 -
200 if (size() == -1)
evaluated: size() == -1
TRUEFALSE
yes
Evaluation Count:28
yes
Evaluation Count:8
8-28
201 readProgress(totalAdvancements, totalAdvancements);
executed: readProgress(totalAdvancements, totalAdvancements);
Execution Count:28
28
202 return 0;
executed: return 0;
Execution Count:36
36
203 } -
204 -
205 currentReadBufferAmount = haveRead; -
206 currentReadBufferPosition = 0; -
207 -
208 len = haveRead; -
209 return currentReadBuffer->data();
executed: return currentReadBuffer->data();
Execution Count:1622
1622
210} -
211 -
212bool QNonContiguousByteDeviceIoDeviceImpl::advanceReadPointer(qint64 amount) -
213{ -
214 totalAdvancements += amount; -
215 -
216 -
217 currentReadBufferPosition += amount; -
218 -
219 if (size() == -1)
evaluated: size() == -1
TRUEFALSE
yes
Evaluation Count:573
yes
Evaluation Count:940
573-940
220 readProgress(totalAdvancements, totalAdvancements);
executed: readProgress(totalAdvancements, totalAdvancements);
Execution Count:573
573
221 else -
222 readProgress(totalAdvancements, size());
executed: readProgress(totalAdvancements, size());
Execution Count:940
940
223 -
224 -
225 if (currentReadBufferPosition > currentReadBufferAmount) {
partially evaluated: currentReadBufferPosition > currentReadBufferAmount
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1513
0-1513
226 qint64 i = currentReadBufferPosition - currentReadBufferAmount; -
227 while (i > 0) {
never evaluated: i > 0
0
228 if (device->getChar(0) == false) {
never evaluated: device->getChar(0) == false
0
229 readProgress(totalAdvancements - i, size()); -
230 return false;
never executed: return false;
0
231 } -
232 i--; -
233 }
never executed: }
0
234 -
235 currentReadBufferPosition = 0; -
236 currentReadBufferAmount = 0; -
237 }
never executed: }
0
238 -
239 -
240 return true;
executed: return true;
Execution Count:1513
1513
241} -
242 -
243bool QNonContiguousByteDeviceIoDeviceImpl::atEnd() -
244{ -
245 return eof == true;
executed: return eof == true;
Execution Count:963
963
246} -
247 -
248bool QNonContiguousByteDeviceIoDeviceImpl::reset() -
249{ -
250 if (resetDisabled)
evaluated: resetDisabled
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:6
1-6
251 return false;
executed: return false;
Execution Count:1
1
252 -
253 if (device->seek(initialPosition)) {
partially evaluated: device->seek(initialPosition)
TRUEFALSE
yes
Evaluation Count:6
no
Evaluation Count:0
0-6
254 eof = false; -
255 return true;
executed: return true;
Execution Count:6
6
256 } -
257 -
258 return false;
never executed: return false;
0
259} -
260 -
261qint64 QNonContiguousByteDeviceIoDeviceImpl::size() -
262{ -
263 -
264 -
265 if (device->isSequential())
evaluated: device->isSequential()
TRUEFALSE
yes
Evaluation Count:603
yes
Evaluation Count:2877
603-2877
266 return -1;
executed: return -1;
Execution Count:603
603
267 -
268 return device->size() - initialPosition;
executed: return device->size() - initialPosition;
Execution Count:2877
2877
269} -
270 -
271QByteDeviceWrappingIoDevice::QByteDeviceWrappingIoDevice(QNonContiguousByteDevice *bd) : QIODevice((QObject*)0) -
272{ -
273 byteDevice = bd; -
274 connect(bd, "2""readyRead()", "2""readyRead()"); -
275 -
276 open(ReadOnly); -
277}
executed: }
Execution Count:11
11
278 -
279QByteDeviceWrappingIoDevice::~QByteDeviceWrappingIoDevice() -
280{ -
281 -
282} -
283 -
284bool QByteDeviceWrappingIoDevice::isSequential() const -
285{ -
286 return (byteDevice->size() == -1);
executed: return (byteDevice->size() == -1);
Execution Count:55
55
287} -
288 -
289bool QByteDeviceWrappingIoDevice::atEnd() const -
290{ -
291 return byteDevice->atEnd();
never executed: return byteDevice->atEnd();
0
292} -
293 -
294bool QByteDeviceWrappingIoDevice::reset() -
295{ -
296 return byteDevice->reset();
never executed: return byteDevice->reset();
0
297} -
298 -
299qint64 QByteDeviceWrappingIoDevice::size() const -
300{ -
301 if (isSequential())
partially evaluated: isSequential()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:22
0-22
302 return 0;
never executed: return 0;
0
303 -
304 return byteDevice->size();
executed: return byteDevice->size();
Execution Count:22
22
305} -
306 -
307 -
308qint64 QByteDeviceWrappingIoDevice::readData( char * data, qint64 maxSize) -
309{ -
310 qint64 len; -
311 const char *readPointer = byteDevice->readPointer(maxSize, len); -
312 if (len == -1)
evaluated: len == -1
TRUEFALSE
yes
Evaluation Count:20
yes
Evaluation Count:285
20-285
313 return -1;
executed: return -1;
Execution Count:20
20
314 -
315 memcpy(data, readPointer, len); -
316 byteDevice->advanceReadPointer(len); -
317 return len;
executed: return len;
Execution Count:285
285
318} -
319 -
320qint64 QByteDeviceWrappingIoDevice::writeData( const char* data, qint64 maxSize) -
321{ -
322 (void)data;; -
323 (void)maxSize;; -
324 return -1;
never executed: return -1;
0
325} -
326QNonContiguousByteDevice* QNonContiguousByteDeviceFactory::create(QIODevice *device) -
327{ -
328 -
329 if (QBuffer* buffer = qobject_cast<QBuffer*>(device)) {
evaluated: QBuffer* buffer = qobject_cast<QBuffer*>(device)
TRUEFALSE
yes
Evaluation Count:58
yes
Evaluation Count:70
58-70
330 return new QNonContiguousByteDeviceBufferImpl(buffer);
executed: return new QNonContiguousByteDeviceBufferImpl(buffer);
Execution Count:58
58
331 } -
332 -
333 -
334 -
335 -
336 -
337 return new QNonContiguousByteDeviceIoDeviceImpl(device);
executed: return new QNonContiguousByteDeviceIoDeviceImpl(device);
Execution Count:70
70
338} -
339QNonContiguousByteDevice* QNonContiguousByteDeviceFactory::create(QSharedPointer<QRingBuffer> ringBuffer) -
340{ -
341 return new QNonContiguousByteDeviceRingBufferImpl(ringBuffer);
executed: return new QNonContiguousByteDeviceRingBufferImpl(ringBuffer);
Execution Count:101
101
342} -
343QNonContiguousByteDevice* QNonContiguousByteDeviceFactory::create(QByteArray *byteArray) -
344{ -
345 return new QNonContiguousByteDeviceByteArrayImpl(byteArray);
never executed: return new QNonContiguousByteDeviceByteArrayImpl(byteArray);
0
346} -
347QIODevice* QNonContiguousByteDeviceFactory::wrap(QNonContiguousByteDevice* byteDevice) -
348{ -
349 -
350 -
351 -
352 -
353 -
354 return new QByteDeviceWrappingIoDevice(byteDevice);
executed: return new QByteDeviceWrappingIoDevice(byteDevice);
Execution Count:11
11
355} -
356 -
357 -
358 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial