void RpcHandler::SendNotification(const QSharedPointer<ISender> &to, const QString &method, const QVariant &data) { int id = IncrementId(); QVariantList container = Request::BuildNotification(id, method, data); QByteArray msg; QDataStream stream(&msg, QIODevice::WriteOnly); stream << container; qDebug() << "RpcHandler: Sending notification" << id << "for" << method << "to" << to->ToString(); to->Send(msg); }
int RpcHandler::SendRequest(const QSharedPointer<ISender> &to, const QString &method, const QVariant &data, const QSharedPointer<ResponseHandler> &cb, bool timeout) { int id = IncrementId(); qint64 ctime = Utils::Time::GetInstance().MSecsSinceEpoch(); TimerCallback *callback = new TimerCallback(this, &RpcHandler::Timeout, id); Utils::TimerEvent timer = Utils::Timer::GetInstance().QueueCallback(callback, TimeoutDelta); _requests[id] = QSharedPointer<RequestState>( new RequestState(to, cb, ctime, timer, timeout)); QVariantList container = Request::BuildRequest(id, method, data); QByteArray msg; QDataStream stream(&msg, QIODevice::WriteOnly); stream << container; qDebug() << "RpcHandler: Sending request" << id << "for" << method << "to" << to->ToString(); to->Send(msg); return id; }