X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxserver.h;h=6b69392fe6890018f3e3dd8b99f76fac6a8bd25b;hb=98c966c64594611e469313314abd1e59524adb4a;hp=05db4ea338d143b707b549c7cb343f06ef181fdc;hpb=83acbbd5237373926c629855379e1df9a04209b2;p=lyx.git diff --git a/src/lyxserver.h b/src/lyxserver.h index 05db4ea338..6b69392fe6 100644 --- a/src/lyxserver.h +++ b/src/lyxserver.h @@ -1,9 +1,9 @@ // -*- C++ -*- /* This file is part of -* ====================================================== -* +* ====================================================== +* * LyX, The Document Processor -* +* * Copyright 1995 Matthias Ettrich * Copyright 1995-2001 The LyX Team. * @@ -49,6 +49,9 @@ public: closeConnection(); } + /// clean up in emergency + void emergencyCleanup(); + /// Send message void send(string const &); @@ -56,12 +59,28 @@ public: static void callback(int fd, void *v); private: + /// the filename of the in pipe + string const inPipeName() { + return pipename + ".in"; + } + + /// the filename of the out pipe + string const outPipeName() { + return pipename + ".out"; + } + /// Open pipes void openConnection(); - + /// Close pipes void closeConnection(); + /// start a pipe + int startPipe(string const &, bool); + + /// finish a pipe + void endPipe(int &, string const &); + /// This is -1 if not open int infd; @@ -92,17 +111,23 @@ public: // The lyx server should not take an argument "LyXFunc" but this is // how it will be done for 0.12. In 0.13 we must write a non-gui // bufferview. - // IMO lyxserver is atypical, and for the moment the only one, non-gui - // bufferview. We just have to find a way to handle situations like if - // lyxserver is using a buffer that is being edited with a bufferview. - // With a common buffer list this is not a problem, maybe. (Alejandro) + // IMO lyxserver is atypical, and for the moment the only one, non-gui + // bufferview. We just have to find a way to handle situations like if + // lyxserver is using a buffer that is being edited with a bufferview. + // With a common buffer list this is not a problem, maybe. (Alejandro) /// LyXServer(LyXFunc * f, string const & pip) : numclients(0), func(f), pipes(pip, (this), callback) {} - /// + /// ~LyXServer(); /// void notifyClient(string const &); + + /// whilst crashing etc. + void emergencyCleanup() { + pipes.emergencyCleanup(); + } + private: /// static void callback(LyXServer *, string const & msg);