记录一下如何使用回调函数。
testapp中利用回调函数,显示rsa_client中接收到数值,具体如下代码:
testapp.h中的函数
RSA_Client *m_Client;
void RecvData(const std::string &Msg);
testapp.cpp中的函数
m_Client->SetRSACallBackFun(std::bind(&TestApp::RecvData, this, std::placeholders::_1));
void TestApp::RecvData(const std::string &Msg)
{
ui->RecvtextEdit->append(QString::fromLocal8Bit(QByteArray(Msg.c_str())));
}
rsa_client.h中的函数
public:
void SetRSACallBackFun(std::function<void(const std::string &)> cbk);
private:
std::function<void (const std::string &)> m_rsaCbk;
rsa_client.cpp中的函数
void RSA_Client::SetRSACallBackFun(std::function<void (const std::string &)> cbk)
{
m_rsaCbk = cbk;
}
void RSA_Client::ClientRecvData()
{
QByteArray result = m_rsaClient->readAll();
std::string strRecvMsg = result.toStdString();
m_rsaCbk(strRecvMsg);
}