int TcpClient::run(Request& req, std::ostream& out) { int returnCode = -1; try { std::ostringstream request_stream; write_request(req, request_stream); this->send(request_stream.str()); this->receive(rcvBuffer_); std::stringstream response_stream; response_stream.write((char*)rcvBuffer_.data(), rcvBuffer_.size()); string line; while (response_stream) { std::getline(response_stream, line); if(endsWith(line,"__JANOSH_EOF")) { out << line.substr(0, line.size() - string("__JANOSH_EOF").size()); std::getline(response_stream, line); returnCode = std::stoi(line); if (returnCode == 0) { LOG_DEBUG_STR("Successful"); } else { LOG_INFO_MSG("Failed", returnCode); } break; } out << line << '\n'; } } catch (std::exception& ex) { LOG_ERR_MSG("Caught in tcp_client run", ex.what()); } return returnCode; }
void ManagerEventsHandler::internalFireEvent(ManagerEvent& me) { LOG_DEBUG_STR("FIRE EVENT " + me.getEventName() + ":: " + me.toLog()); for (EventListenersList::const_iterator iter = listeners.begin(); iter != listeners.end(); ++iter) { try { (const_cast<ManagerEventListener *> (*iter))->onManagerEvent(me); } catch (Exception& E) { LOG_ERROR_STR(E.getMessage()); } } }
void TcpClient::close(bool commit) { LOG_DEBUG_STR("Closing socket"); if(commit) send("commit"); else send("abort"); string msg; receive(msg); if(commit) assert(msg == "c*k"); else assert(msg == "aok"); sock_.destroy(); }
void ManagerConnection::send(const std::string& data) { LOG_DEBUG_STR(str2Log(data)); this->socket->writeData(data); LOG_TRACE_STR("OUT"); }
void ManagerConnection::dispatchAsteriskVersion(AsteriskVersion *version) { LOG_DEBUG_STR("SET ASTERISK VERSTION " + (*version).toString()) asteriskVersion = version; }
void ManagerConnection::send(const std::string& data) { LOG_DEBUG_STR(str2Log(data)); this->socket->writeData(data.c_str(), (unsigned int) (data.length())); LOG_TRACE_STR("OUT"); }