AJ_Status AJS_SessionLost(duk_context* ctx, AJ_Message* msg) { uint32_t sessionId; AJ_UnmarshalArgs(msg, "u", &sessionId); AJ_InfoPrintf(("AJS_SessionLost(): Removing session: %u\n", sessionId)); return RemoveSessions(ctx, sessionId); }
void QMessageTransceiverThread :: UnregisterHandler(QMessageTransceiverThread & thread, QMessageTransceiverHandler * handler, bool emitEndMessageBatchIfNecessary) { if (this != &thread) thread.UnregisterHandler(thread, handler, emitEndMessageBatchIfNecessary); // paranoia else { if (_handlers.Remove(handler->_sessionID) == B_NO_ERROR) { // paranoia: in case we are doing this in the middle of our last-seen traversal, we need // to safely remove (handler) from the traversal so that the traversal doesn't break if ((emitEndMessageBatchIfNecessary)&&((handler->_nextSeen)||(handler == _lastSeenHandler))) RemoveFromSeenList(handler, emitEndMessageBatchIfNecessary); (void) RemoveSessions(handler->_sessionTargetString()); } handler->ClearRegistrationFields(); } }
AJ_Status AJS_EndSessions(duk_context* ctx) { return RemoveSessions(ctx, 0); }