Untitled
unknown
c_cpp
5 months ago
1.4 kB
1
Indexable
int32_t ConnectionsManager::sendRequestInternal(TLObject *object, onCompleteFunc onComplete, onQuickAckFunc onQuickAck, onRequestClearFunc onClear, uint32_t flags, uint32_t datacenterId, ConnectionType connectionType, bool immediate) { auto request = new Request(instanceNum, lastRequestToken++, connectionType, flags, datacenterId, onComplete, onQuickAck, nullptr, onClear); request->rawRequest = object; request->rpcRequest = wrapInLayer(object, getDatacenterWithId(datacenterId), request); auto cancelledIterator = tokensToBeCancelled.find(request->requestToken); if (cancelledIterator != tokensToBeCancelled.end()) { if (LOGS_ENABLED) DEBUG_D("(3) request is cancelled before sending, token %d", request->requestToken); tokensToBeCancelled.erase(cancelledIterator); delete request; return request->requestToken; } if (!currentUserId && !(flags & RequestFlagWithoutLogin)) { if (LOGS_ENABLED) DEBUG_D("can't do request without login %s, reschedule token %d", typeid(*object).name(), request->requestToken); waitingLoginRequests.push_back(std::unique_ptr<Request>(request)); } else { requestsQueue.push_back(std::unique_ptr<Request>(request)); if (immediate) { processRequestQueue(0, 0); } } return request->requestToken; }
Editor is loading...
Leave a Comment