Initial implementation of IPC via UNIX domain sockets

This commit is contained in:
Michael Stapelberg
2009-07-28 20:51:29 +02:00
parent 1befbb2a50
commit a43846ea27
5 changed files with 294 additions and 1 deletions

View File

@ -22,6 +22,7 @@
#define NUM_ATOMS 17
extern xcb_connection_t *global_conn;
extern char **start_argv;
extern Display *xkbdpy;
extern TAILQ_HEAD(bindings_head, Binding) bindings;

24
include/i3/ipc.h Normal file
View File

@ -0,0 +1,24 @@
/*
* vim:ts=8:expandtab
*
* i3 - an improved dynamic tiling window manager
*
* © 2009 Michael Stapelberg and contributors
*
* See file LICENSE for license information.
*
* This public header defines the different constants and message types to use
* for the IPC interface to i3 (see docs/ipc for more information).
*
*/
#ifndef _I3_IPC_H
#define _I3_IPC_H
/** Never change this, only on major IPC breakage (dont do that) */
#define I3_IPC_MAGIC "i3-ipc"
/** The payload of the message will be interpreted as a command */
#define I3_IPC_MESSAGE_TYPE_COMMAND 0
#endif

23
include/ipc.h Normal file
View File

@ -0,0 +1,23 @@
/*
* vim:ts=8:expandtab
*
* i3 - an improved dynamic tiling window manager
*
* © 2009 Michael Stapelberg and contributors
*
* See file LICENSE for license information.
*
*/
#ifndef _IPC_H
#define _IPC_H
#include <ev.h>
#include "i3/ipc.h"
void ipc_new_client(EV_P_ struct ev_io *w, int revents);
int ipc_create_socket(const char *filename);
#endif