MCPcopy Create free account
hub / github.com/MayaPosch/NymphCast / disconnect

Function disconnect

src/server/NymphCastServer.cpp:665–702  ·  view source on GitHub ↗

Client disconnects from server. bool disconnect()

Source from the content-addressed store, hash-verified

663// Client disconnects from server.
664// bool disconnect()
665NymphMessage* disconnect(int session, NymphMessage* msg, void* data) {
666
667 // Remove the client ID from the list.
668 std::map<int, CastClient>::iterator it;
669 it = clients.find(session);
670 if (it != clients.end()) {
671 clients.erase(it);
672 }
673
674 NYMPH_LOG_INFORMATION("Current server mode: " + Poco::NumberFormatter::format(serverMode));
675
676 // Disconnect any slave remotes if we're connected.
677 if (serverMode == NCS_MODE_MASTER) {
678 NYMPH_LOG_DEBUG("# of slave remotes: " +
679 Poco::NumberFormatter::format(slave_remotes.size()));
680 for (int i = 0; i < slave_remotes.size(); ++i) {
681 // Disconnect from slave remote.
682 NymphCastSlaveRemote& rm = slave_remotes[i];
683 NYMPH_LOG_DEBUG("Disconnecting slave: " + rm.name);
684 std::string result;
685 if (!NymphRemoteServer::disconnect(rm.handle, result)) {
686 // Failed to connect, error out. Disconnect from any already connected slaves.
687 NYMPH_LOG_ERROR("Slave disconnect error: " + result);
688 }
689 }
690
691 slave_remotes.clear();
692 }
693
694 NYMPH_LOG_INFORMATION("Switching to stand-alone server mode.");
695 serverMode = NCS_MODE_STANDALONE;
696
697 NymphMessage* returnMsg = msg->getReplyMessage();
698 returnMsg->setResultValue(new NymphType(true));
699 msg->discard();
700
701 return returnMsg;
702}
703
704
705// Client starts a session.

Callers 2

session_add_slaveFunction · 0.70
~LCDConnectionMethod · 0.50

Calls 5

formatFunction · 0.85
findMethod · 0.45
endMethod · 0.45
sizeMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected