aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/os/server.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/os/server.h')
-rw-r--r--src/nvim/os/server.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/nvim/os/server.h b/src/nvim/os/server.h
new file mode 100644
index 0000000000..b9459a81af
--- /dev/null
+++ b/src/nvim/os/server.h
@@ -0,0 +1,30 @@
+#ifndef NEOVIM_OS_SERVER_H
+#define NEOVIM_OS_SERVER_H
+
+#include "os/channel_defs.h"
+
+/// Initializes the module
+void server_init();
+
+/// Teardown the server module
+void server_teardown();
+
+/// Starts listening on arbitrary tcp/unix addresses specified by
+/// `endpoint` for API calls. The type of socket used(tcp or unix/pipe) will
+/// be determined by parsing `endpoint`: If it's a valid tcp address in the
+/// 'ip:port' format, then it will be tcp socket, else it will be a unix
+/// socket or named pipe.
+///
+/// @param endpoint Address of the server. Either a 'ip:port' string or an
+/// arbitrary identifier(trimmed to 256 bytes) for the unix socket or
+/// named pipe.
+/// @param prot The rpc protocol to be used
+void server_start(char *endpoint, ChannelProtocol prot);
+
+/// Stops listening on the address specified by `endpoint`.
+///
+/// @param endpoint Address of the server.
+void server_stop(char *endpoint);
+
+#endif // NEOVIM_OS_SERVER_H
+