Rabbit Remote Control
0.1.0-bate14
Toggle main menu visibility
Loading...
Searching...
No Matches
Plugins
TigerVnc
InStreamChannel.cpp
1
#include "InStreamChannel.h"
2
#include <stdexcept>
3
#include <QLoggingCategory>
4
5
Q_LOGGING_CATEGORY(VncStreamChannel,
"VNC.Stream.Channel"
)
6
7
CInStreamChannel
::
CInStreamChannel
(
CChannel
* pDataChannel)
8
: rdr::BufferedInStream(),
9
m_pDataChannel(pDataChannel)
10
{
11
}
12
13
bool
CInStreamChannel::fillBuffer()
14
{
15
//Q_ASSERT(m_pDataChannel);
16
if
(!m_pDataChannel || !m_pDataChannel->isOpen())
return
false
;
17
18
size_t
nLen = availSpace();
19
if
(nLen <= 0)
20
return
false
;
21
22
qint64 n = m_pDataChannel->read((
char
*)end, nLen);
23
if
(0 == n)
24
return
false
;
25
26
if
(0 > n)
27
{
28
qCritical(VncStreamChannel) <<
"CInStreamDataChannel::fillBuffer:"
29
<< m_pDataChannel->errorString();
30
//return false;
31
throw
std::runtime_error(m_pDataChannel->errorString().toStdString());
32
}
33
34
end += n;
35
36
return
true
;
37
}
CChannel
The channel interface class.
Definition
Channel.h:28
CInStreamChannel
Definition
InStreamChannel.h:8
Author: Kang Lin (kl222@126.com)
Copyright (c) Kang Lin Studios All Rights Reserved