@@ -2,6 +2,7 @@ MessagePack-RPC for C
2
2
=======================
3
3
4
4
C wrapper of MessagePack-RPC for C+
5
+
5
6
## Motive
6
7
7
8
Call client methods of MessagePack-RPC for C++ from C application.
@@ -35,20 +36,30 @@ And types of all arguments of mrc_notify() are limited to char* too.
35
36
36
37
Because type check of argument values is make complex the API of methods.
37
38
38
- const char* mrc_call(char* NAME_OF_METHOD, char* argv1, char* argv2, ....);
39
- void mrc_notify(char* NAME_OF_METHOD, char* argv1, char* argv2, ....);
39
+ const char* mrc_call(mrclient* client, char* NAME_OF_METHOD, char* argv1, char* argv2, ....);
40
+ void mrc_notify(mrclient* client, char* NAME_OF_METHOD, char* argv1, char* argv2, ....);
40
41
41
42
If you want to use the type expect the char* , you should formatted value(JSON, YAML...) as first argument.
42
43
43
- const char* mrc_call(char* NAME_OF_METHOD, char* JSON_FORMAT_VALUE);
44
+ const char* mrc_call(mrclient* client, char* NAME_OF_METHOD, char* JSON_FORMAT_VALUE);
44
45
45
46
Finaly, the number of arguments of methods(call(), notify()) after NAME_OF_METHOD is limited to value from 0 to 16.
46
47
47
48
It is same as API of MessagePack-RPC for C++.
48
49
49
- OK : mrc_call(char* NAME_OF_METHOD);
50
- OK : mrc_call(char* NAME_OF_METHOD, char* argv1, ..., char* argv16);
51
- NG : mrc_call(char* NAME_OF_METHOD, char* argv1, ..., char* argv17);
50
+ OK : mrc_call(mrclient* client, char* NAME_OF_METHOD);
51
+ OK : mrc_call(mrclient* client, char* NAME_OF_METHOD, char* argv1, ..., char* argv16);
52
+ NG : mrc_call(mrclient* client, char* NAME_OF_METHOD, char* argv1, ..., char* argv17);
53
+
54
+ When you call mrc_notify(), it's better to call mrc_flush_loop() after processing to call all mrc_notify() lines.
55
+
56
+ mrc_flush_loop() flush implicitly the notify requests which are buffered in msgpack::rpc::loop.
57
+
58
+ mrc_notify(mrclient* client, char* NAME_OF_METHOD, ....);
59
+ mrc_notify(mrclient* client, char* NAME_OF_METHOD, ....);
60
+ ...
61
+ mrc_notify(mrclient* client, char* NAME_OF_METHOD, ....);
62
+ mrc_flush_loop(mrclient* client);
52
63
53
64
## Before installation
54
65
0 commit comments