feature: add mutil invoke method
diff --git a/src/dubbo_invoker.erl b/src/dubbo_invoker.erl
index 895a6b1..21138f7 100644
--- a/src/dubbo_invoker.erl
+++ b/src/dubbo_invoker.erl
@@ -11,7 +11,7 @@
-include("dubbo.hrl").
%% API
--export([invoke_request/2,invoke_request/5]).
+-export([invoke_request/2,invoke_request/3,invoke_request/5]).
-spec invoke_request(Interface::binary(),Request::#dubbo_request{})->
{ok,reference()}|
@@ -20,6 +20,14 @@
invoke_request(Interface,Request)->
invoke_request(Interface,Request,[],#{},self()).
+-spec invoke_request(Interface::binary(),Request::#dubbo_request{},RequestOption::map())->
+ {ok,reference()}|
+ {ok,reference(),Data::any(),RpcContent::list()}|
+ {error,Reason::timeout|no_provider|any()}.
+invoke_request(Interface,Request,RequestOption)->
+ invoke_request(Interface,Request,maps:get(ctx,RequestOption,[]),RequestOption,self()).
+
+
-spec invoke_request(Interface::binary(),Request::#dubbo_request{},RpcContext::list(),RequestState::map(),CallBackPid::pid())->
{ok,reference()}|
{ok,reference(),Data::any(),RpcContent::list()}|
diff --git a/test/dubbo_service_type_list.erl b/test/dubbo_service_type_list.erl
index 1f01868..863e165 100644
--- a/test/dubbo_service_type_list.erl
+++ b/test/dubbo_service_type_list.erl
@@ -8,6 +8,7 @@
get_list()->
[
{userInfoRequest,<<"com.ifcoder.demo.bean.UserInfoRequest">>,record_info(fields,userInfoRequest)},
+ {list,<<"java.util.List">>,record_info(fields,list)},
{userInfo,<<"com.ifcoder.demo.bean.UserInfo">>,record_info(fields,userInfo)},
{userRes,<<"com.ifcoder.demo.bean.UserRes">>,record_info(fields,userRes)} ].
diff --git a/test/user.erl b/test/user.erl
index 4f905f1..5ff512b 100644
--- a/test/user.erl
+++ b/test/user.erl
@@ -44,9 +44,9 @@
{ok,reference(),Data::#userInfo{},RpcContent::list()}|
{error,Reason::timeout|no_provider|any()}.
getUserInfo(Arg0)->
- getUserInfo(Arg0 ,[]).
+ getUserInfo(Arg0 ,#{}).
-getUserInfo(Arg0, Option)->
+getUserInfo(Arg0, RequestOption)->
Data = #dubbo_rpc_invocation{
className = ?CURRENT_CLASS_NAME,
@@ -69,12 +69,12 @@
Request = #dubbo_request{
is_event = false,
is_twoway = true,
- mid = de_id_count:gen_id(),
+ mid = dubbo_id_generator:gen_id(),
data = Data,
mversion= <<"0.0.0">>,
serialize_type = ?SERIALIZATION_HESSIAN
},
- dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request).
+ dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request,RequestOption).
-spec genUserId()->
@@ -82,9 +82,9 @@
{ok,reference(),Data::list(),RpcContent::list()}|
{error,Reason::timeout|no_provider|any()}.
genUserId()->
- genUserId( []).
+ genUserId( #{}).
-genUserId( Option)->
+genUserId( RequestOption)->
Data = #dubbo_rpc_invocation{
className = ?CURRENT_CLASS_NAME,
@@ -105,12 +105,12 @@
Request = #dubbo_request{
is_event = false,
is_twoway = true,
- mid = de_id_count:gen_id(),
+ mid = dubbo_id_generator:gen_id(),
data = Data,
mversion= <<"0.0.0">>,
serialize_type = ?SERIALIZATION_HESSIAN
},
- dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request).
+ dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request,RequestOption).
-spec queryUserInfo(Arg0::#userInfoRequest{})->
@@ -118,9 +118,9 @@
{ok,reference(),Data::#userInfo{},RpcContent::list()}|
{error,Reason::timeout|no_provider|any()}.
queryUserInfo(Arg0)->
- queryUserInfo(Arg0 ,[]).
+ queryUserInfo(Arg0 ,#{}).
-queryUserInfo(Arg0, Option)->
+queryUserInfo(Arg0, RequestOption)->
Data = #dubbo_rpc_invocation{
className = ?CURRENT_CLASS_NAME,
@@ -143,12 +143,12 @@
Request = #dubbo_request{
is_event = false,
is_twoway = true,
- mid = de_id_count:gen_id(),
+ mid = dubbo_id_generator:gen_id(),
data = Data,
mversion= <<"0.0.0">>,
serialize_type = ?SERIALIZATION_HESSIAN
},
- dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request).
+ dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request,RequestOption).
-spec queryUserList(Arg0::list())->
@@ -156,9 +156,9 @@
{ok,reference(),Data::#userRes{},RpcContent::list()}|
{error,Reason::timeout|no_provider|any()}.
queryUserList(Arg0)->
- queryUserList(Arg0 ,[]).
+ queryUserList(Arg0 ,#{}).
-queryUserList(Arg0, Option)->
+queryUserList(Arg0, RequestOption)->
Data = #dubbo_rpc_invocation{
className = ?CURRENT_CLASS_NAME,
@@ -181,10 +181,10 @@
Request = #dubbo_request{
is_event = false,
is_twoway = true,
- mid = de_id_count:gen_id(),
+ mid = dubbo_id_generator:gen_id(),
data = Data,
mversion= <<"0.0.0">>,
serialize_type = ?SERIALIZATION_HESSIAN
},
- dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request).
+ dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request,RequestOption).