X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxsocket.C;h=d48ea477d4b7001c0a2c0ffdd7ea43bb67432c45;hb=095625dc3cd0542d13d8cc62362aa71c896eb3e0;hp=4af70e10b22c66843a39c08d009995862c1e72d2;hpb=a6444784dca48da8b1f7723be12069b2e1dbb4c5;p=lyx.git diff --git a/src/lyxsocket.C b/src/lyxsocket.C index 4af70e10b2..d48ea477d4 100644 --- a/src/lyxsocket.C +++ b/src/lyxsocket.C @@ -21,9 +21,10 @@ #include "LyXAction.h" #include "lyxfunc.h" -#include "frontends/lyx_gui.h" +#include "frontends/Application.h" #include "support/environment.h" +#include "support/filename.h" #include "support/lyxlib.h" #include "support/socktools.h" @@ -42,12 +43,14 @@ using std::endl; using std::string; +namespace lyx { + // Address is the unix address for the socket. // MAX_CLIENTS is the maximum number of clients // that can connect at the same time. LyXServerSocket::LyXServerSocket(LyXFunc * f, string const & addr) : func(f), - fd_(lyx::support::socktools::listen(addr, 3)), + fd_(support::socktools::listen(addr, 3)), address_(addr) { if (fd_ == -1) { @@ -57,11 +60,11 @@ LyXServerSocket::LyXServerSocket(LyXFunc * f, string const & addr) // These env vars are used by DVI inverse search // Needed by xdvi - lyx::support::setEnv("XEDITOR", "lyxclient -g %f %l"); + support::setEnv("XEDITOR", "lyxclient -g %f %l"); // Needed by lyxclient - lyx::support::setEnv("LYXSOCKET", address_); + support::setEnv("LYXSOCKET", address_); - lyx_gui::register_socket_callback( + theApp()->registerSocketCallback( fd_, boost::bind(&LyXServerSocket::serverCallback, this) ); @@ -75,12 +78,13 @@ LyXServerSocket::LyXServerSocket(LyXFunc * f, string const & addr) LyXServerSocket::~LyXServerSocket() { if (fd_ != -1) { - lyx_gui::unregister_socket_callback(fd_); + BOOST_ASSERT (theApp()); + theApp()->unregisterSocketCallback(fd_); if (::close(fd_) != 0) lyxerr << "lyx: Server socket " << fd_ << " IO error on closing: " << strerror(errno); } - lyx::support::unlink(address_); + support::unlink(support::FileName(address_)); lyxerr[Debug::LYXSERVER] << "lyx: Server socket quitting" << endl; } @@ -95,7 +99,7 @@ string const & LyXServerSocket::address() const // is OK and if the number of clients does not exceed MAX_CLIENTS void LyXServerSocket::serverCallback() { - int const client_fd = lyx::support::socktools::accept(fd_); + int const client_fd = support::socktools::accept(fd_); if (fd_ == -1) { lyxerr[Debug::LYXSERVER] << "lyx: Failed to accept new client" @@ -111,7 +115,7 @@ void LyXServerSocket::serverCallback() // Register the new client. clients[client_fd] = shared_ptr(new LyXDataSocket(client_fd)); - lyx_gui::register_socket_callback( + theApp()->registerSocketCallback( client_fd, boost::bind(&LyXServerSocket::dataCallback, this, client_fd) @@ -140,7 +144,7 @@ void LyXServerSocket::dataCallback(int fd) if (key == "LYXCMD") { string const cmd = line.substr(pos + 1); func->dispatch(lyxaction.lookupFunc(cmd)); - string const rval = lyx::to_utf8(func->getMessage()); + string const rval = to_utf8(func->getMessage()); if (func->errorStat()) { client->writeln("ERROR:" + cmd + ':' + rval); } else { @@ -209,7 +213,7 @@ LyXDataSocket::~LyXDataSocket() lyxerr << "lyx: Data socket " << fd_ << " IO error on closing: " << strerror(errno); - lyx_gui::unregister_socket_callback(fd_); + theApp()->unregisterSocketCallback(fd_); lyxerr[Debug::LYXSERVER] << "lyx: Data socket " << fd_ << " quitting." << endl; } @@ -280,3 +284,6 @@ void LyXDataSocket::writeln(string const & line) connected_ = false; } } + + +} // namespace lyx