1 | #ifndef NVIM_API_PRIVATE_DISPATCH_H |
2 | #define NVIM_API_PRIVATE_DISPATCH_H |
3 | |
4 | #include "nvim/api/private/defs.h" |
5 | |
6 | typedef Object (*ApiDispatchWrapper)(uint64_t channel_id, |
7 | Array args, |
8 | Error *error); |
9 | |
10 | /// The rpc_method_handlers table, used in msgpack_rpc_dispatch(), stores |
11 | /// functions of this type. |
12 | typedef struct { |
13 | ApiDispatchWrapper fn; |
14 | bool fast; // Function is safe to be executed immediately while running the |
15 | // uv loop (the loop is run very frequently due to breakcheck). |
16 | // If "fast" is false, the function is deferred, i e the call will |
17 | // be put in the event queue, for safe handling later. |
18 | } MsgpackRpcRequestHandler; |
19 | |
20 | #ifdef INCLUDE_GENERATED_DECLARATIONS |
21 | # include "api/private/dispatch.h.generated.h" |
22 | # include "api/private/dispatch_wrappers.h.generated.h" |
23 | #endif |
24 | |
25 | #endif // NVIM_API_PRIVATE_DISPATCH_H |
26 | |