aboutsummaryrefslogtreecommitdiff
path: root/src/os/server.h
blob: b9459a81af28be791c2303a5e3b68bce87db73cc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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