void processMessage(const char * buffer, int length){ std::string message = std::string(buffer, length); Json::Reader reader; Json::Value jmessage; if (!reader.parse(message, jmessage)) { std::cerr << "[SIG] error : cannot parse JSON message" << std::endl; return; } std::string func; rtc::GetStringFromJsonObject(jmessage,"func", &func); if(func.empty()){ return ; //no command specified, ignore message } int peerid = -1; //Get Client ID rtc::GetIntFromJsonObject(jmessage, "peerId", &peerid); //If client ID not defined, abort if(peerid == -1) return ; if(func.compare("ListChannels") == 0){ processListChannels(peerid, jmessage); }else if(func.compare("Connect") == 0){ processConnect(peerid, jmessage); }else if(func.compare("ICECandidate") == 0){ processICECandidate(peerid, jmessage); }else if(func.compare("Answer") == 0){ processAnswer(peerid, jmessage); } }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // "Гасим" светодиод ui->led->turnOff(); // Смена COM-порта connect(ui->portNameBox, SIGNAL(currentIndexChanged(int)), this, SLOT(checkCustomPortName(int))); // Смена скорости COM-порта connect(ui->baudRateBox, SIGNAL(currentIndexChanged(int)), this, SLOT(checkCustomBaudRatePolicy(int))); // Нажата кнопка подключения connect(ui->connectBtn, SIGNAL(clicked()), this, SIGNAL(processConnect())); // Отправка команды через консоль connect(ui->console, SIGNAL(onCommand(QString)), this, SIGNAL(onCommand(QString))); }
void DdpServer::process(const std::string &input) { jvar::Variant inputData; if (!inputData.parseJson(input.c_str())) throw; jvar::Variant responseArray; responseArray.createArray(); for(int i = 0; i < inputData.length();i++) { jvar::Variant packet; packet.parseJson(inputData[i].toString().c_str()); jvar::Variant response; response = processPing(packet); response = response.isEmpty() ? processConnect(packet) : response; response = response.isEmpty() ? processSub(packet) : response; response = response.isEmpty() ? processUnsub(packet) : response; response = response.isEmpty() ? processMethod(packet) : response; if (response.isEmpty()) { // unknown } else if (response.isArray()) { for (int j = 0; j < response.length(); j++) responseArray.push(response[j].toString()); } else { responseArray.push(response.toString()); } } if (responseArray.length() == 0) return; onEmitCallback(context, "a" + responseArray.toJsonString()); }
void SerialPortWorker::processCommand(Command command) { // qDebug() << "Method name"; switch (command.type) { case CT_create: processCreate(command.num); break; case CT_connect: processConnect(command.num); break; case CT_basicPosture: processBasicPosture(command.num); break; case CT_DCOn: processDCOn(command.num); break; case CT_setPose: processSetPose(command.num, command.angles); break; case CT_DCOff: processDCOff(command.num); break; case CT_disconnect: processDisconnect(command.num); break; // default: // break; } }
void pollNet() { if (connectState != ConnectState::Connecting && connectState != ConnectState::Connected) { return; } // wait for the connection to succeed ENetEvent evt; if (enet_host_service(client, &evt, 0) > 0) { switch (evt.type) { case ENET_EVENT_TYPE_CONNECT: processConnect(evt); break; case ENET_EVENT_TYPE_DISCONNECT: processDisconnect(evt); break; case ENET_EVENT_TYPE_RECEIVE: processReceive(evt); break; case ENET_EVENT_TYPE_NONE: // make the compiler shut up about unhandled enum value break; } } if (connectState == ConnectState::Connecting && narf::time::now() >= connectTimeoutEnd) { narf::console->println("Connection attempt timed out"); // TODO: use to_string enet_peer_reset(server); // TODO: is server valid at this point? do we need to destroy it? server = nullptr; connectState = ConnectState::Unconnected; } }
bool DebuggerServlet::httpRecvRequest(const HTTPServer::Request& request) { if (!request.data.hasKey("path")) return false; // returnError(request); if (isCORS(request)) { handleCORS(request); return true; } std::cout << request.data["path"] << ": " << request.data["content"] << std::endl; Data replyData; // process request that don't need a session if (false) { } else if (boost::starts_with(request.data.at("path").atom, "/debug/connect")) { processConnect(request); return true; } else if (boost::starts_with(request.data.at("path").atom, "/debug/sessions")) { processListSessions(request); return true; } // get session or return error if (false) { } else if (!request.data.at("content").hasKey("session")) { replyData.compound["status"] = Data("failure", Data::VERBATIM); replyData.compound["reason"] = Data("No session given", Data::VERBATIM); } else if (_sessionForId.find(request.data.at("content").at("session").atom) == _sessionForId.end()) { replyData.compound["status"] = Data("failure", Data::VERBATIM); replyData.compound["reason"] = Data("No such session", Data::VERBATIM); } if (replyData) { returnData(request, replyData); return true; } boost::shared_ptr<DebugSession> session = _sessionForId[request.data.at("content").at("session").atom]; if (false) { } else if (boost::starts_with(request.data.at("path").atom, "/debug/poll")) { // save long-standing client poll _clientConns[session] = request; serverPushData(session); } else if (boost::starts_with(request.data.at("path").atom, "/debug/disconnect")) { processDisconnect(request); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/enable/all")) { replyData = session->enableAllBreakPoints(); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/disable/all")) { replyData = session->disableAllBreakPoints(); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/skipto")) { replyData = session->skipToBreakPoint(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/add")) { replyData = session->addBreakPoint(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/remove")) { replyData = session->removeBreakPoint(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/enable")) { replyData = session->enableBreakPoint(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/breakpoint/disable")) { replyData = session->disableBreakPoint(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/stop")) { replyData = session->debugStop(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/prepare")) { replyData = session->debugPrepare(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/attach")) { replyData = session->debugAttach(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/start")) { replyData = session->debugStart(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/step")) { replyData = session->debugStep(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/pause")) { replyData = session->debugPause(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/resume")) { replyData = session->debugResume(request.data["content"]); } else if (boost::starts_with(request.data.at("path").atom, "/debug/eval")) { replyData = session->debugEval(request.data["content"]); } if (replyData) { returnData(request, replyData); return true; } return true; }