aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/os/msgpack_rpc.c
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-05-23 15:49:38 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-05-23 16:06:58 -0300
commit92307201b51c399e8109c91cc131ff3602389db1 (patch)
treef79a10e34412b7876d6a997f662bb7b8cf546f12 /src/nvim/os/msgpack_rpc.c
parent5fdf854f78eb1a87acb2d28b3d941d988bd1b74e (diff)
downloadrneovim-92307201b51c399e8109c91cc131ff3602389db1.tar.gz
rneovim-92307201b51c399e8109c91cc131ff3602389db1.tar.bz2
rneovim-92307201b51c399e8109c91cc131ff3602389db1.zip
API: Refactor: Generalize buffer, window and tabpage types/functions
- Extract remote types definitions into a macro - Extract msgpack_rpc helper functions for remote types into a macro
Diffstat (limited to 'src/nvim/os/msgpack_rpc.c')
-rw-r--r--src/nvim/os/msgpack_rpc.c44
1 files changed, 14 insertions, 30 deletions
diff --git a/src/nvim/os/msgpack_rpc.c b/src/nvim/os/msgpack_rpc.c
index 45832070b1..c1e749a000 100644
--- a/src/nvim/os/msgpack_rpc.c
+++ b/src/nvim/os/msgpack_rpc.c
@@ -4,6 +4,16 @@
#include "nvim/vim.h"
#include "nvim/memory.h"
+#define REMOTE_FUNCS_IMPL(t, lt) \
+ bool msgpack_rpc_to_##lt(msgpack_object *obj, t *arg) \
+ { \
+ return msgpack_rpc_to_integer(obj, arg); \
+ } \
+ \
+ void msgpack_rpc_from_##lt(t result, msgpack_packer *res) \
+ { \
+ msgpack_rpc_from_integer(result, res); \
+ }
void msgpack_rpc_call(msgpack_object *req, msgpack_packer *res)
{
// The initial response structure is the same no matter what happens,
@@ -104,21 +114,6 @@ bool msgpack_rpc_to_string(msgpack_object *obj, String *arg)
return obj->type == MSGPACK_OBJECT_RAW;
}
-bool msgpack_rpc_to_buffer(msgpack_object *obj, Buffer *arg)
-{
- return msgpack_rpc_to_integer(obj, arg);
-}
-
-bool msgpack_rpc_to_window(msgpack_object *obj, Window *arg)
-{
- return msgpack_rpc_to_integer(obj, arg);
-}
-
-bool msgpack_rpc_to_tabpage(msgpack_object *obj, Tabpage *arg)
-{
- return msgpack_rpc_to_integer(obj, arg);
-}
-
bool msgpack_rpc_to_object(msgpack_object *obj, Object *arg)
{
switch (obj->type) {
@@ -251,21 +246,6 @@ void msgpack_rpc_from_string(String result, msgpack_packer *res)
msgpack_pack_raw_body(res, result.data, result.size);
}
-void msgpack_rpc_from_buffer(Buffer result, msgpack_packer *res)
-{
- msgpack_rpc_from_integer(result, res);
-}
-
-void msgpack_rpc_from_window(Window result, msgpack_packer *res)
-{
- msgpack_rpc_from_integer(result, res);
-}
-
-void msgpack_rpc_from_tabpage(Tabpage result, msgpack_packer *res)
-{
- msgpack_rpc_from_integer(result, res);
-}
-
void msgpack_rpc_from_object(Object result, msgpack_packer *res)
{
switch (result.type) {
@@ -390,3 +370,7 @@ void msgpack_rpc_free_dictionary(Dictionary value)
free(value.items);
}
+REMOTE_FUNCS_IMPL(Buffer, buffer)
+REMOTE_FUNCS_IMPL(Window, window)
+REMOTE_FUNCS_IMPL(Tabpage, tabpage)
+