MCPcopy Create free account
hub / github.com/KangLin/RabbitRemoteControl / Start

Method Start

Plugins/RawStream/OperateRawStream.cpp:29–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27}
28
29int COperateRawStream::Start()
30{
31 if(!m_pTerminal)
32 return -1;
33
34 slotUpdateParameter(this);
35
36 bool check = false;
37 check = connect(m_pTerminal, &QTermWidget::sendData,
38 this, [&](const char* buf, int len){
39 if(!m_TcpSocket.isOpen()) return;
40 QByteArray data(buf, len);
41 //qDebug(log) << "Send data:" << data << data.toHex(':');
42 qint64 nLen = 0;
43 switch(m_Parameter.GetType()) {
44 case CParameterRawStream::TYPE::TCP:
45 nLen = m_TcpSocket.write(data);
46 break;
47 case CParameterRawStream::TYPE::NamePipe:
48 break;
49 }
50 if(GetStats())
51 GetStats()->AddSends(nLen);
52 });
53 Q_ASSERT(check);
54
55 check = connect(&m_TcpSocket, SIGNAL(connected()),
56 this, SIGNAL(sigRunning()));
57 Q_ASSERT(check);
58 check = connect(&m_TcpSocket, SIGNAL(readyRead()),
59 this, SLOT(slotReadyRead()));
60 Q_ASSERT(check);
61 check = connect(&m_TcpSocket, &QTcpSocket::errorOccurred,
62 this, [&](QAbstractSocket::SocketError error) {
63 qCritical(log) << m_TcpSocket.errorString() << error;
64 if(m_TcpSocket.isOpen())
65 emit sigError(error, m_TcpSocket.errorString());
66 });
67 Q_ASSERT(check);
68
69 switch(m_Parameter.GetType()) {
70 case CParameterRawStream::TYPE::TCP: {
71 auto &net = m_Parameter.m_Net;
72 m_TcpSocket.connectToHost(net.GetHost(), net.GetPort());
73 break;
74 }
75 case CParameterRawStream::TYPE::NamePipe:
76 break;
77 default:
78 emit sigRunning();
79 }
80
81 m_pTerminal->startTerminalTeletype();
82
83 return 0;
84}
85
86int COperateRawStream::Stop()

Callers

nothing calls this directly

Calls 7

writeMethod · 0.80
AddSendsMethod · 0.80
errorStringMethod · 0.80
connectToHostMethod · 0.80
GetHostMethod · 0.80
GetTypeMethod · 0.45
GetPortMethod · 0.45

Tested by

no test coverage detected