コード例 #1
0
ファイル: tcp_client.cpp プロジェクト: kallaballa/Janosh
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;
}
コード例 #2
0
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());
        }
    }
}
コード例 #3
0
ファイル: tcp_client.cpp プロジェクト: kallaballa/Janosh
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();
}
コード例 #4
0
 void ManagerConnection::send(const std::string& data) {
     LOG_DEBUG_STR(str2Log(data));
     this->socket->writeData(data);
     LOG_TRACE_STR("OUT");
 }
コード例 #5
0
 void ManagerConnection::dispatchAsteriskVersion(AsteriskVersion *version) {
     LOG_DEBUG_STR("SET ASTERISK VERSTION " + (*version).toString())
     asteriskVersion = version;
 }
コード例 #6
0
	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");
	}