blob: 5fc734da7ad1c4fe52f907faa2c367f22d0072a4 [file] [log] [blame]
-module(${moduleName}).
-include_lib("dubboerl/include/dubbo.hrl").
-include_lib("dubboerl/include/hessian.hrl").
-define(CURRENT_CLASS_NAME,<<"${className}"/utf8>>).
-define(CURRENT_CLASS_VERSION,<<"0.0.0"/utf8>>).
-include("${appName}.hrl").
%% API
-export([
#foreach($methodItem in $methodList)
#set($argsLength=${methodItem.getArgsLength()} + 1 )
${methodItem.getName()}/${methodItem.getArgsLength()},
${methodItem.getName()}/${argsLength}#if($foreach.hasNext),
#end
#end
]).
-export([get_method_999_list/0]).
%% behaviour
#foreach($methodItem in $methodList)
-callback ${methodItem.getName()}(##
#foreach($argsItemEntry in $methodItem.getParameterTypeList().entrySet())##
${argsItemEntry.key}::${argsItemEntry.value}#if($foreach.hasNext),
#end##
#end)-> ${methodItem.getReturnErlType()}.
#end
get_method_999_list()->
[
#foreach($methodItem in $methodList)
${methodItem.getName()}#if($foreach.hasNext),
#end
#end].
#foreach($methodItem in $methodList)
#*
方法申明
*#
-spec ${methodItem.getName()}(##
#foreach($argsItemEntry in $methodItem.getParameterTypeList().entrySet())
${argsItemEntry.key}::${argsItemEntry.value}#if($foreach.hasNext),##
#end
#end)->
{ok,reference()}|
{ok,reference(),Data::${methodItem.getReturnErlType()},RpcContent::list()}|
{error,Reason::timeout|no_provider|any()}.
${methodItem.getName()}(${methodItem.getParameterNameString()})->
${methodItem.getName()}(${methodItem.getParameterNameString()} #if($methodItem.getParameterNameString().length()>0),#end#{}).
${methodItem.getName()}(${methodItem.getParameterNameString()}#if($methodItem.getParameterNameString().length()>0),#end RequestOption)->
#*
ResponseTypeList=[
${methodItem.getResponseTypeDef()}
],
*#
Data = #dubbo_rpc_invocation{
className = ?CURRENT_CLASS_NAME,
classVersion = ?CURRENT_CLASS_VERSION,
methodName = <<"${methodItem.getName()}">>,
parameterDesc = <<"${methodItem.getArgsType()}"/utf8>>,
parameterTypes = [
${methodItem.getParameterTypeDef()}
],
parameters = [
${methodItem.getParameterNameString()}
],
attachments = [
{<<"path">>, ?CURRENT_CLASS_NAME},
{<<"interface">> , ?CURRENT_CLASS_NAME}
]
},
Request = dubbo_adapter:reference(Data),
dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request,RequestOption).
#end