X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxsocket.h;h=d958f3a297cc265dd13712f6da156ba47ef183e0;hb=37d42d45f3f4a5d3e916a080af50b37ae4a9d118;hp=cadea4cbe7152e3045809858452f4a16d0cd9d11;hpb=45a8d5a93ac40f100125ef71393490a6af064f2c;p=lyx.git diff --git a/src/lyxsocket.h b/src/lyxsocket.h index cadea4cbe7..d958f3a297 100644 --- a/src/lyxsocket.h +++ b/src/lyxsocket.h @@ -17,12 +17,15 @@ #include "support/socktools.h" #include "lyxfunc.h" +#include + #include -#include +#include class LyXServerSocket; class LyXDataSocket; + /** Sockets can be in two states: listening and connected. * Connected sockets are used to transfer data, and will therefore * be called Data Sockets. Listening sockets are used to create @@ -32,24 +35,22 @@ class LyXDataSocket; * This class encapsulates local (unix) server socket operations and * manages LyXDataSockets objects that are created when clients connect. */ -class LyXServerSocket -{ +class LyXServerSocket { public: + /// LyXServerSocket(LyXFunc *, std::string const &); + /// ~LyXServerSocket(); - /// File descriptor of the socket - int fd() const; /// Address of the local socket std::string const & address() const; /// To be called when there is activity in the server socket void serverCallback(); /// To be called when there is activity in the data socket - void dataCallback(LyXDataSocket *); - + void dataCallback(int fd); private: - /// Close the connection to the argument client - void close(LyXDataSocket *); - + /// + void writeln(std::string const &); + /// LyXFunc * func; /// File descriptor for the server socket int fd_; @@ -57,40 +58,35 @@ private: std::string address_; /// Maximum number of simultaneous clients enum { - MAX_CLIENTS = 10 - }; + MAX_CLIENTS = 10 + }; /// All connections - std::set clients; + std::map > clients; }; /** This class encapsulates data socket operations. * It provides read and write IO operations on the socket. */ -class LyXDataSocket -{ +class LyXDataSocket { public: - LyXDataSocket(LyXServerSocket *); + /// + LyXDataSocket(int fd); + /// ~LyXDataSocket(); - /// The object that allocated us - LyXServerSocket * server() const; - /// File descriptor of the connection - int fd() const; /// Connection status bool connected() const; - /// Line buffered input from the socket + /// Line buffered input from the socket bool readln(std::string &); /// Write the string + '\n' to the socket void writeln(std::string const &); - private: - LyXServerSocket * server_; /// File descriptor for the data socket int fd_; /// True if the connection is up bool connected_; /// buffer for input data - std::string buffer; + std::string buffer_; }; #endif // LYXSOCKET_H