1.一种优化方法,其特征在于,所述方法包括:
基于包括C++函数对象的原远程过程调用方法设置升级版的远程过程调用方法,在所述升级版的远程过程调用方法中,改用C语言的函数指针方式设置回调函数,并通过RpcAttribute属性方式设置参数;
其中,所述基于包括C++函数对象的原远程过程调用方法设置升级版的远程过程调用方法包括:基于原远程过程调用的注册方法设置升级版的远程过程调用的注册方法和基于原远程过程调用的调用方法设置升级版的远程过程调用的调用方法,所述升级版的远程过程调用的注册方法的参数包括远程过程调用实例句柄和int64类型的第一属性数组,所述升级版的远程过程调用的调用方法的参数包括远程过程调用实例句柄、要发送的远端程序、远程过程调用服务名称、远程过程调用的参数、参数个数和int64类型的第二属性数组,所述第一属性数组和所述第二属性数组以RPC_ATTR_END属性结尾;
从所述通过RpcAttribute属性方式设置的参数中获取需要的参数并调用所述原远程过程调用方法来实现所述升级版的远程过程调用方法;
在所述升级版的远程过程调用的注册方法中,所述第一属性数组用于按照以所述RpcAttribute属性为关键字的键值对的方式存储第一回调函数、远程过程调用服务名称、参数签名和第一自定义参数,所述第一回调函数的参数包括远程过程调用服务的远端标识、远程过程调用的参数、参数个数、远程过程调用服务执行的上下文环境和所述第一自定义参数;
在所述升级版的远程过程调用的注册方法中,所述从所述通过RpcAttribute属性方式设置的参数中获取需要的参数并调用所述原远程过程调用方法来实现所述升级版的远程过程调用方法,包括:根据所述RpcAttribute属性的关键字的值从所述第一属性数组中获取所述远程过程调用服务名称、所述第一回调函数,所述第一自定义参数和所述参数签名;
调用std::bind函数,将所述第一回调函数和所述第一自定义参数绑定为第一C++函数对象;
根据所述远程过程调用服务名称、所述参数签名和所述第一C++函数对象,调用所述原远程过程调用的注册方法来实现所述升级版的远程过程调用的注册方法;
在所述升级版的远程过程调用的调用方法中,所述第二属性数组用于按照以所述RpcAttribute属性为关键字的键值对的方式存储第二回调函数、超时时间和第二自定义参数,所述第二回调函数的参数包括所述远程过程调用的参数和所述第二自定义参数;
在所述升级版的远程过程调用的调用方法中,所述从所述通过RpcAttribute属性方式设置的参数中获取需要的参数并调用所述原远程过程调用方法来实现所述升级版的远程过程调用方法,包括:根据所述RpcAttribute属性的关键字的值从所述第二属性数组中获取所述超时时间、所述第二回调函数和所述第二自定义参数;
从所述升级版的远程过程调用的调用方法的参数列表中获取所述要发送的远端程序、所述远程过程调用服务名称、所述远程过程调用的参数、所述参数个数;
调用std::bind函数,将所述第二回调函数和所述第二自定义参数绑定为第二C++函数对象;
根据所述要发送的远端程序、所述远程过程调用服务名称、所述远程过程调用的参数、所述参数个数、所述超时时间和所述第二C++函数对象,调用所述原远程过程调用的调用方法,实现所述升级版的远程过程调用的调用方法。
2.一种优化装置,其特征在于,所述装置包括:
设置单元,用于基于包括C++函数对象的原远程过程调用方法设置升级版的远程过程调用方法,在所述升级版的远程过程调用方法中,改用C语言的函数指针方式设置回调函数,并通过RpcAttribute属性方式设置参数;其中,所述基于包括C++函数对象的原远程过程调用方法设置升级版的远程过程调用方法包括:基于原远程过程调用的注册方法设置升级版的远程过程调用的注册方法和基于原远程过程调用的调用方法设置升级版的远程过程调用的调用方法,所述升级版的远程过程调用的注册方法的参数包括远程过程调用实例句柄和int64类型的第一属性数组,所述升级版的远程过程调用的调用方法的参数包括远程过程调用实例句柄、要发送的远端程序、远程过程调用服务名称、远程过程调用的参数、参数个数和int64类型的第二属性数组,所述第一属性数组和所述第二属性数组以RPC_ATTR_END属性结尾;
实现单元,用于从所述通过RpcAttribute属性方式设置的参数中获取需要的参数并调用所述原远程过程调用方法来实现所述升级版的远程过程调用方法;
在所述升级版的远程过程调用的注册方法中,所述第一属性数组用于按照以所述RpcAttribute属性为关键字的键值对的方式存储第一回调函数、远程过程调用服务名称、参数签名和第一自定义参数,所述第一回调函数的参数包括远程过程调用服务的远端标识、远程过程调用的参数、参数个数、远程过程调用服务执行的上下文环境和所述第一自定义参数;
在所述升级版的远程过程调用的调用方法中,所述第二属性数组用于按照以所述RpcAttribute属性为关键字的键值对的方式存储第二回调函数、超时时间和第二自定义参数,所述第二回调函数的参数包括所述远程过程调用的参数和所述第二自定义参数。
3.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:基于包括C++函数对象的原远程过程调用方法设置升级版的远程过程调用方法,在所述升级版的远程过程调用方法中,改用C语言的函数指针方式设置回调函数,并通过RpcAttribute属性方式设置参数;
其中,所述基于包括C++函数对象的原远程过程调用方法设置升级版的远程过程调用方法包括:基于原远程过程调用的注册方法设置升级版的远程过程调用的注册方法和基于原远程过程调用的调用方法设置升级版的远程过程调用的调用方法,所述升级版的远程过程调用的注册方法的参数包括远程过程调用实例句柄和int64类型的第一属性数组,所述升级版的远程过程调用的调用方法的参数包括远程过程调用实例句柄、要发送的远端程序、远程过程调用服务名称、远程过程调用的参数、参数个数和int64类型的第二属性数组,所述第一属性数组和所述第二属性数组以RPC_ATTR_END属性结尾;
从所述通过RpcAttribute属性方式设置的参数中获取需要的参数并调用所述原远程过程调用方法来实现所述升级版的远程过程调用方法;
在所述升级版的远程过程调用的注册方法中,所述第一属性数组用于按照以所述RpcAttribute属性为关键字的键值对的方式存储第一回调函数、远程过程调用服务名称、参数签名和第一自定义参数,所述第一回调函数的参数包括远程过程调用服务的远端标识、远程过程调用的参数、参数个数、远程过程调用服务执行的上下文环境和所述第一自定义参数;
在所述升级版的远程过程调用的注册方法中,所述从所述通过RpcAttribute属性方式设置的参数中获取需要的参数并调用所述原远程过程调用方法来实现所述升级版的远程过程调用方法,包括:根据所述RpcAttribute属性的关键字的值从所述第一属性数组中获取所述远程过程调用服务名称、所述第一回调函数,所述第一自定义参数和所述参数签名;
调用std::bind函数,将所述第一回调函数和所述第一自定义参数绑定为第一C++函数对象;
根据所述远程过程调用服务名称、所述参数签名和所述第一C++函数对象,调用所述原远程过程调用的注册方法来实现所述升级版的远程过程调用的注册方法;
在所述升级版的远程过程调用的调用方法中,所述第二属性数组用于按照以所述RpcAttribute属性为关键字的键值对的方式存储第二回调函数、超时时间和第二自定义参数,所述第二回调函数的参数包括所述远程过程调用的参数和所述第二自定义参数;
在所述升级版的远程过程调用的调用方法中,所述从所述通过RpcAttribute属性方式设置的参数中获取需要的参数并调用所述原远程过程调用方法来实现所述升级版的远程过程调用方法,包括:根据所述RpcAttribute属性的关键字的值从所述第二属性数组中获取所述超时时间、所述第二回调函数和所述第二自定义参数;
从所述升级版的远程过程调用的调用方法的参数列表中获取所述要发送的远端程序、所述远程过程调用服务名称、所述远程过程调用的参数、所述参数个数;
调用std::bind函数,将所述第二回调函数和所述第二自定义参数绑定为第二C++函数对象;
根据所述要发送的远端程序、所述远程过程调用服务名称、所述远程过程调用的参数、所述参数个数、所述超时时间和所述第二C++函数对象,调用所述原远程过程调用的调用方法,实现所述升级版的远程过程调用的调用方法。
4.一种计算机设备,包括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:基于包括C++函数对象的原远程过程调用方法设置升级版的远程过程调用方法,在所述升级版的远程过程调用方法中,改用C语言的函数指针方式设置回调函数,并通过RpcAttribute属性方式设置参数;
其中,所述基于包括C++函数对象的原远程过程调用方法设置升级版的远程过程调用方法包括:基于原远程过程调用的注册方法设置升级版的远程过程调用的注册方法和基于原远程过程调用的调用方法设置升级版的远程过程调用的调用方法,所述升级版的远程过程调用的注册方法的参数包括远程过程调用实例句柄和int64类型的第一属性数组,所述升级版的远程过程调用的调用方法的参数包括远程过程调用实例句柄、要发送的远端程序、远程过程调用服务名称、远程过程调用的参数、参数个数和int64类型的第二属性数组,所述第一属性数组和所述第二属性数组以RPC_ATTR_END属性结尾;
从所述通过RpcAttribute属性方式设置的参数中获取需要的参数并调用所述原远程过程调用方法来实现所述升级版的远程过程调用方法;
在所述升级版的远程过程调用的注册方法中,所述第一属性数组用于按照以所述RpcAttribute属性为关键字的键值对的方式存储第一回调函数、远程过程调用服务名称、参数签名和第一自定义参数,所述第一回调函数的参数包括远程过程调用服务的远端标识、远程过程调用的参数、参数个数、远程过程调用服务执行的上下文环境和所述第一自定义参数;
在所述升级版的远程过程调用的注册方法中,所述从所述通过RpcAttribute属性方式设置的参数中获取需要的参数并调用所述原远程过程调用方法来实现所述升级版的远程过程调用方法,包括:根据所述RpcAttribute属性的关键字的值从所述第一属性数组中获取所述远程过程调用服务名称、所述第一回调函数,所述第一自定义参数和所述参数签名;
调用std::bind函数,将所述第一回调函数和所述第一自定义参数绑定为第一C++函数对象;
根据所述远程过程调用服务名称、所述参数签名和所述第一C++函数对象,调用所述原远程过程调用的注册方法来实现所述升级版的远程过程调用的注册方法;
在所述升级版的远程过程调用的调用方法中,所述第二属性数组用于按照以所述RpcAttribute属性为关键字的键值对的方式存储第二回调函数、超时时间和第二自定义参数,所述第二回调函数的参数包括所述远程过程调用的参数和所述第二自定义参数;
在所述升级版的远程过程调用的调用方法中,所述从所述通过RpcAttribute属性方式设置的参数中获取需要的参数并调用所述原远程过程调用方法来实现所述升级版的远程过程调用方法,包括:根据所述RpcAttribute属性的关键字的值从所述第二属性数组中获取所述超时时间、所述第二回调函数和所述第二自定义参数;
从所述升级版的远程过程调用的调用方法的参数列表中获取所述要发送的远端程序、所述远程过程调用服务名称、所述远程过程调用的参数、所述参数个数;
调用std::bind函数,将所述第二回调函数和所述第二自定义参数绑定为第二C++函数对象;
根据所述要发送的远端程序、所述远程过程调用服务名称、所述远程过程调用的参数、所述参数个数、所述超时时间和所述第二C++函数对象,调用所述原远程过程调用的调用方法,实现所述升级版的远程过程调用的调用方法。