diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2017-11-26 10:18:01 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-26 10:18:01 +0100 |
commit | 207b7ca4bc16d52641eaa5244eef25a0dba91dbc (patch) | |
tree | a3422eceb6eeaa692a7baf7171dfa5fd81ad86b2 /src/nvim/msgpack_rpc/channel_defs.h | |
parent | b57d9a4ff08fc1ef8db79d422b441b792493ff4e (diff) | |
parent | 0de019b6a65c6dd5141b7e002343df3689065ce7 (diff) | |
download | rneovim-207b7ca4bc16d52641eaa5244eef25a0dba91dbc.tar.gz rneovim-207b7ca4bc16d52641eaa5244eef25a0dba91dbc.tar.bz2 rneovim-207b7ca4bc16d52641eaa5244eef25a0dba91dbc.zip |
Merge pull request #6844 from bfredl/channel
channels: support buffered output and bytes sockets/stdio
Diffstat (limited to 'src/nvim/msgpack_rpc/channel_defs.h')
-rw-r--r-- | src/nvim/msgpack_rpc/channel_defs.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/nvim/msgpack_rpc/channel_defs.h b/src/nvim/msgpack_rpc/channel_defs.h new file mode 100644 index 0000000000..6d8362e8b7 --- /dev/null +++ b/src/nvim/msgpack_rpc/channel_defs.h @@ -0,0 +1,36 @@ +#ifndef NVIM_MSGPACK_RPC_CHANNEL_DEFS_H +#define NVIM_MSGPACK_RPC_CHANNEL_DEFS_H + +#include <stdbool.h> +#include <uv.h> +#include <msgpack.h> + +#include "nvim/api/private/defs.h" +#include "nvim/event/socket.h" +#include "nvim/event/process.h" +#include "nvim/vim.h" + +typedef struct Channel Channel; + +typedef struct { + uint64_t request_id; + bool returned, errored; + Object result; +} ChannelCallFrame; + +typedef struct { + Channel *channel; + MsgpackRpcRequestHandler handler; + Array args; + uint64_t request_id; +} RequestEvent; + +typedef struct { + PMap(cstr_t) *subscribed_events; + bool closed; + msgpack_unpacker *unpacker; + uint64_t next_request_id; + kvec_t(ChannelCallFrame *) call_stack; +} RpcState; + +#endif // NVIM_MSGPACK_RPC_CHANNEL_DEFS_H |