X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FServer.cpp;h=14c1e202dd7eb09fe275338e04e72272c2b308c1;hb=700af7e7011f102d92222744791638ff2db18f94;hp=d2cd33b373c7560dc31b350c4ba65234ce07ca8b;hpb=c3e1c597abe56e947b0a78bb58790212108f70b4;p=lyx.git diff --git a/src/Server.cpp b/src/Server.cpp index d2cd33b373..14c1e202dd 100644 --- a/src/Server.cpp +++ b/src/Server.cpp @@ -40,15 +40,15 @@ #include #include "Server.h" -#include "debug.h" #include "FuncRequest.h" #include "LyXAction.h" #include "LyXFunc.h" + #include "frontends/Application.h" +#include "support/debug.h" #include "support/FileName.h" #include "support/lstrings.h" -#include "support/lyxlib.h" #include @@ -58,19 +58,11 @@ #endif #include +using namespace std; +using namespace lyx::support; namespace lyx { -using support::compare; -using support::FileName; -using support::rtrim; -using support::split; -using support::unlink; - -using std::endl; -using std::string; - - ///////////////////////////////////////////////////////////////////// // // LyXComm @@ -80,7 +72,7 @@ using std::string; #if !defined (HAVE_MKFIFO) // We provide a stub class that disables the lyxserver. -LyXComm::LyXComm(std::string const &, Server *, ClientCallbackfct) +LyXComm::LyXComm(string const &, Server *, ClientCallbackfct) {} void LyXComm::openConnection() @@ -115,7 +107,7 @@ void LyXComm::send(string const & msg) #else // defined (HAVE_MKFIFO) -LyXComm::LyXComm(std::string const & pip, Server * cli, ClientCallbackfct ccb) +LyXComm::LyXComm(string const & pip, Server * cli, ClientCallbackfct ccb) : pipename_(pip), client_(cli), clientcb_(ccb) { ready_ = false; @@ -125,7 +117,7 @@ LyXComm::LyXComm(std::string const & pip, Server * cli, ClientCallbackfct ccb) void LyXComm::openConnection() { - LYXERR(Debug::LYXSERVER) << "LyXComm: Opening connection" << endl; + LYXERR(Debug::LYXSERVER, "LyXComm: Opening connection"); // If we are up, that's an error if (ready_) { @@ -136,9 +128,7 @@ void LyXComm::openConnection() ready_ = false; if (pipename_.empty()) { - LYXERR(Debug::LYXSERVER) - << "LyXComm: server is disabled, nothing to do" - << endl; + LYXERR(Debug::LYXSERVER, "LyXComm: server is disabled, nothing to do"); return; } @@ -160,24 +150,22 @@ void LyXComm::openConnection() // We made it! ready_ = true; - LYXERR(Debug::LYXSERVER) << "LyXComm: Connection established" << endl; + LYXERR(Debug::LYXSERVER, "LyXComm: Connection established"); } /// Close pipes void LyXComm::closeConnection() { - LYXERR(Debug::LYXSERVER) << "LyXComm: Closing connection" << endl; + LYXERR(Debug::LYXSERVER, "LyXComm: Closing connection"); if (pipename_.empty()) { - LYXERR(Debug::LYXSERVER) - << "LyXComm: server is disabled, nothing to do" - << endl; + LYXERR(Debug::LYXSERVER, "LyXComm: server is disabled, nothing to do"); return; } if (!ready_) { - lyxerr << "LyXComm: Already disconnected" << endl; + LYXERR0("LyXComm: Already disconnected"); return; } @@ -210,7 +198,7 @@ int LyXComm::startPipe(string const & file, bool write) if (fd < 0) { lyxerr << "LyXComm: Could not open pipe " << filename << '\n' << strerror(errno) << endl; - unlink(filename); + filename.removeFile(); return -1; } @@ -236,7 +224,7 @@ void LyXComm::endPipe(int & fd, string const & filename, bool write) << '\n' << strerror(errno) << endl; } - if (unlink(FileName(filename)) < 0) { + if (FileName(filename).removeFile() < 0) { lyxerr << "LyXComm: Could not remove pipe " << filename << '\n' << strerror(errno) << endl; } @@ -278,10 +266,9 @@ void LyXComm::read_ready() // the delim /wasn't/ found. ?:-P string cmd; read_buffer_= split(read_buffer_, cmd,'\n'); - LYXERR(Debug::LYXSERVER) - << "LyXComm: status:" << status + LYXERR(Debug::LYXSERVER, "LyXComm: status:" << status << ", read_buffer_:" << read_buffer_ - << ", cmd:" << cmd << endl; + << ", cmd:" << cmd); if (!cmd.empty()) clientcb_(client_, cmd); //\n or not \n? @@ -292,10 +279,9 @@ void LyXComm::read_ready() return; } if (errno != 0) { - lyxerr << "LyXComm: " << strerror(errno) << endl; + LYXERR0("LyXComm: " << strerror(errno)); if (!read_buffer_.empty()) { - lyxerr << "LyXComm: truncated command: " - << read_buffer_ << endl; + LYXERR0("LyXComm: truncated command: " << read_buffer_); read_buffer_.erase(); } break; // reset connection @@ -313,18 +299,16 @@ void LyXComm::read_ready() void LyXComm::send(string const & msg) { if (msg.empty()) { - lyxerr << "LyXComm: Request to send empty string. Ignoring." - << endl; + LYXERR0("LyXComm: Request to send empty string. Ignoring."); return; } - LYXERR(Debug::LYXSERVER) << "LyXComm: Sending '" << msg << '\'' << endl; + LYXERR(Debug::LYXSERVER, "LyXComm: Sending '" << msg << '\''); if (pipename_.empty()) return; if (!ready_) { - lyxerr << "LyXComm: Pipes are closed. Could not send " - << msg << endl; + LYXERR0("LyXComm: Pipes are closed. Could not send " << msg); } else if (::write(outfd_, msg.c_str(), msg.length()) < 0) { lyxerr << "LyXComm: Error sending message: " << msg << '\n' << strerror(errno) @@ -360,7 +344,7 @@ void ServerCallback(Server * server, string const & msg) server->callback(msg); } -Server::Server(LyXFunc * f, std::string const & pipes) +Server::Server(LyXFunc * f, string const & pipes) : numclients_(0), func_(f), pipes_(pipes, this, &ServerCallback) {} @@ -378,11 +362,17 @@ Server::~Server() } +int compare(char const * a, char const * b, unsigned int len) +{ + using namespace std; + return strncmp(a, b, len); +} + + // Handle data gotten from communication, called by LyXComm void Server::callback(string const & msg) { - LYXERR(Debug::LYXSERVER) << "Server: Received: '" - << msg << '\'' << endl; + LYXERR(Debug::LYXSERVER, "Server: Received: '" << msg << '\''); char const * p = msg.c_str(); @@ -425,10 +415,8 @@ void Server::callback(string const & msg) if (*p) ++p; } - LYXERR(Debug::LYXSERVER) - << "Server: Client: '" << client - << "' Command: '" << cmd - << "' Argument: '" << arg << '\'' << endl; + LYXERR(Debug::LYXSERVER, "Server: Client: '" << client + << "' Command: '" << cmd << "' Argument: '" << arg << '\''); // --- lookup and exec the command ------------------ @@ -439,9 +427,7 @@ void Server::callback(string const & msg) if (cmd == "hello") { // One more client if (numclients_ == MAX_CLIENTS) { //paranoid check - LYXERR(Debug::LYXSERVER) - << "Server: too many clients..." - << endl; + LYXERR(Debug::LYXSERVER, "Server: too many clients..."); return; } int i = 0; @@ -450,9 +436,7 @@ void Server::callback(string const & msg) clients_[i] = client; ++numclients_; buf = "LYXSRV:" + client + ":hello\n"; - LYXERR(Debug::LYXSERVER) - << "Server: Greeting " - << client << endl; + LYXERR(Debug::LYXSERVER, "Server: Greeting " << client); pipes_.send(buf); } else if (cmd == "bye") { // If clients_ == 0 maybe we should reset the pipes @@ -465,18 +449,14 @@ void Server::callback(string const & msg) if (i < numclients_) { --numclients_; clients_[i].erase(); - LYXERR(Debug::LYXSERVER) - << "Server: Client " - << client << " said goodbye" - << endl; + LYXERR(Debug::LYXSERVER, "Server: Client " + << client << " said goodbye"); } else { - LYXERR(Debug::LYXSERVER) - << "Server: ignoring bye messge from unregistered client" - << client << endl; + LYXERR(Debug::LYXSERVER, + "Server: ignoring bye messge from unregistered client" << client); } } else { - lyxerr <<"Server: Undefined server command " - << cmd << '.' << endl; + LYXERR0("Server: Undefined server command " << cmd << '.'); } return; }