diff options
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  | 
