diff options
Diffstat (limited to 'client/x11/named_pipe.h')
-rw-r--r-- | client/x11/named_pipe.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/client/x11/named_pipe.h b/client/x11/named_pipe.h new file mode 100644 index 00000000..ab41f7f3 --- /dev/null +++ b/client/x11/named_pipe.h @@ -0,0 +1,62 @@ +/* + Copyright (C) 2009 Red Hat, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _H_NAMED_PIPE +#define _H_NAMED_PIPE + +#include "platform.h" +#include "x_platform.h" +#include "events_loop.h" + +class Session: public EventsLoop::Socket { +public: + Session(int fd, EventsLoop& events_loop); + virtual ~Session(); + void bind(NamedPipe::ConnectionInterface* conn_interface); + +public: + virtual void on_event(); + virtual int get_socket() {return _fd_client;} + int32_t write(const uint8_t *buf, int32_t size); + int32_t read(uint8_t *buf, int32_t size); + +private: + NamedPipe::ConnectionInterface *_conn_interface; + int _fd_client; + EventsLoop &_events_loop; +}; + +class LinuxListener: public EventsLoop::Socket { +public: + LinuxListener(const char *name, NamedPipe::ListenerInterface &listener_interface, + EventsLoop &events_loop); + virtual ~LinuxListener(); + void on_event(); + virtual int get_socket() {return _listen_socket;} + +private: + int create_socket(const char *socket_name); + +private: + NamedPipe::ListenerInterface &_listener_interface; + int _listen_socket; + std::string _name; + EventsLoop &_events_loop; +}; + +#endif + |