CN109445845B - 接口调用方法、装置、计算机设备和存储介质 - Google Patents
接口调用方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109445845B CN109445845B CN201811052830.3A CN201811052830A CN109445845B CN 109445845 B CN109445845 B CN 109445845B CN 201811052830 A CN201811052830 A CN 201811052830A CN 109445845 B CN109445845 B CN 109445845B
- Authority
- CN
- China
- Prior art keywords
- interface
- function
- calling
- identifier
- functional
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Abstract
本申请涉及一种接口调用方法、装置、计算机设备和存储介质。方法包括:获取携带有调用参数的调用请求,调用参数包括枚举功能标识、枚举接口标识和参数结构体指针;向公共调用接口传入调用参数,通过公共调用接口以根据枚举功能标识确定相应的功能接口类;将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口;通过功能管控接口以根据枚举接口标识确定相应的功能接口;根据参数结构体指针调用功能接口。采用本方法能够使各个功能接口间相分离,降低了在接口调用过程中各个功能接口之间的耦合度。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种接口调用方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,嵌入式软件开发多数为在供应商提供的SDK基础上做二次开发,将自己产品的私有代码叠加在SDK内部。在私有代码中,由于产品的功能需求不同,需要对产品的功能进行逐个开发,开发过程中,需要各个功能接口相互直接调用,才能形成最终的软件结构。对于后续同平台不同类型的产品,需要对现有的软件结构进行功能接口的增删形成新产品的软件框架。
而对于不同平台的产品进行软件开发时,需要利用现有已经实现的相同功能代码来进行跨平台移植,形成一套代码对应一种产品或多种同类产品的架构。在对功能代码进行跨平台移植的过程中,由于单款产品的针对性强,功能代码耦合度高,导致移植困难。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低功能接口间的耦合度的接口调用方法、装置、计算机设备和存储介质。
一种接口调用方法,所述方法包括:
获取携带有调用参数的调用请求,调用参数包括枚举功能标识、枚举接口标识和参数结构体指针;
向公共调用接口传入调用参数,通过公共调用接口以根据枚举功能标识确定相应的功能接口类;
将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口;
通过功能管控接口以根据枚举接口标识确定相应的功能接口;
根据参数结构体指针调用功能接口。
在其中一个实施例中,所述获取携带有调用参数的调用请求之前,所述方法还包括:
获取通过宏开关触发的控制指令;
根据控制指令,选择与各功能接口类的功能接口相对应的功能接口源文件;
根据功能接口源文件进行编译,以启用相应的功能接口和功能接口类。
在其中一个实施例中,所述向所述公共调用接口传入所述调用参数包括:
将调用请求所携带的枚举功能标识、枚举接口标识和参数结构体指针,分别传入公共调用接口中的对应参数位,参数结构体指针的对应参数位采用无类型指针创建。
在其中一个实施例中,所述将所述枚举接口标识和参数结构体指针传入由所述功能接口类实例化所得的功能管控接口包括:
获取功能接口类的实例化对象指针;
确定实例化对象指针指向的功能管控接口,功能管控接口采用与公共调用接口相同的计算机语言;
将枚举接口标识和参数结构体指针传入到功能管控接口。
在其中一个实施例中,所述获取所述功能接口类的实例化对象指针包括:通过功能接口类进行单次实例化,以生成实例化对象指针。
一种接口调用装置,所述装置包括:
交互模块,用于获取携带有调用参数的调用请求,调用参数包括枚举功能标识、枚举接口标识和参数结构体指针;向公共调用接口传入调用参数,通过公共调用接口以根据枚举功能标识确定相应的功能接口类;
管控模块,用于将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口;通过功能管控接口以根据枚举接口标识确定相应的功能接口;
功能模块,用于根据参数结构体指针调用功能接口。
在其中一个实施例中,管控模块还用于获取通过宏开关触发的控制指令;根据控制指令,选择与各功能接口类的功能接口相对应的功能接口源文件;根据功能接口源文件进行编译,以启用相应的功能接口和功能接口类。
在其中一个实施例中,管控模块还用于获取功能接口类的实例化对象指针;确定实例化对象指针指向的功能管控接口,功能管控接口采用与公共调用接口相同的计算机语言;将枚举接口标识和参数结构体指针传入到功能管控接口。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现以下步骤:
获取携带有调用参数的调用请求,调用参数包括枚举功能标识、枚举接口标识和参数结构体指针;
向公共调用接口传入调用参数,通过公共调用接口以根据枚举功能标识确定相应的功能接口类;
将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口;
通过功能管控接口以根据枚举接口标识确定相应的功能接口;
根据参数结构体指针调用功能接口。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取携带有调用参数的调用请求,调用参数包括枚举功能标识、枚举接口标识和参数结构体指针;
向公共调用接口传入调用参数,通过公共调用接口以根据枚举功能标识确定相应的功能接口类;
将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口;
通过功能管控接口以根据枚举接口标识确定相应的功能接口;
根据参数结构体指针调用功能接口。
上述接口调用方法、装置、计算机设备和存储介质,设置有公共调用接口,通过该公共调用接口统一进行调用请求的中转,根据调用请求所携带的枚举功能标识可以确定调用所需的功能接口类,再利用调用请求所携带的枚举接口标识便可以确定调用所需的功能接口,进而依据参数结构体指针实现对功能接口的调用。由于各个功能接口间相分离,降低了在接口调用过程中各个功能接口之间的耦合度。
附图说明
图1为一个实施例中计算机设备的内部结构图;
图2为一个实施例中接口调用方法的应用环境图;
图3为一个实施例中接口调用方法的流程示意图;
图4为一个实施例中接口调用装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如图1所示的计算机设备,包括存储器和处理器,存储器中存储有计算机程序。计算机程序被处理器执行时,可以实现本申请提供的接口调用方法的步骤。该计算机设备可以是终端,也可以是服务器。可以理解的是,当计算机设备为终端时,该计算机设备还可以包括显示屏和输入装置等。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。计算机设备可以是通用计算机设备,也可以是嵌入式设备。
如图2所示,计算机程序实现一种计算机软件系统,该计算机软件系统包括交互区、管控区和功能区。交互区包括交互模块202,交互模块202可以提供整个计算机软件系统的初始化、启动、停止、释放和控制。管控区的管控模块204可以控制功能区的各个功能接口的初始化、启动、停止、释放与控制交互。功能区可以包含已经实现的各种功能接口,功能接口可以为不同版本且实现相同功能的功能接口,也可以为来自不同平台的功能接口。
具体地,交互区的交互模块202获取携带有调用参数的调用请求,调用参数包括枚举功能标识、枚举接口标识和参数结构体指针,向公共调用接口传入调用参数,通过公共调用接口以根据枚举功能标识确定管控区相应的功能接口类。管控区的管控模块204将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口,通过功能管控接口以根据枚举接口标识确定功能区相应的功能接口。功能区的功能模块206根据参数结构体指针调用功能接口。
在一个实施例中,如图3所示,提供了一种接口调用方法,该方法包括以下步骤:
步骤S302,获取携带有调用参数的调用请求,调用参数包括枚举功能标识、枚举接口标识和参数结构体指针。
可以理解的是,调用参数中的枚举功能标识、枚举接口标识和参数结构体指针分别可以为一个或多于一个。其中,调用请求用于触发调用接口的运行,枚举功能标识是调用参数中列举的所需功能的标识,枚举接口标识是调用参数中列举的所需功能接口的标识,结构体指针是指向结构体的指针,参数结构体指针则是在参数的传递过程中,作为参数来进行传递的结构体指针。本实施例中的参数结构体指针是根据枚举接口标识确定的功能接口所需要的参数。
步骤S304,向公共调用接口传入调用参数,通过公共调用接口以根据枚举功能标识确定相应的功能接口类。
其中,类是一种数据类型或者创建对象的模板,本身不占用内存空间,一个类可以创建多个对象,每个对象都是类类型的一个变量。功能接口类便是某种功能接口的类。公共调用接口是位于图2中交互区的接口,对于各功能接口的调用请求的调用参数都可以传入到此公共调用接口,通过此公共调用接口来实现功能接口的调用。
具体地,计算机设备可通过交互区中的交互模块,获取携带有调用参数的调用请求,并将调用参数传入到公共调用接口中,通过公共调用接口以根据调用参数中的各个枚举功能标识确定相应的功能接口类。
步骤S306,将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口。
其中,实例化指的是功能接口类创建对象的过程,每个对象都是类的一个具体实例。功能管控接口是位于图2中的管控区的功能管控接口,用于接收从交互区传入的枚举接口标识和参数结构体指针。具体地,计算机设备在确定了相应的功能接口类后,可通过管控区中的管控模块,将枚举接口标识和参数结构体指针传入由功能接口类创建对象的过程中所得到的功能管控接口。
步骤S308,通过功能管控接口以根据枚举接口标识确定相应的功能接口。
具体地,计算机设备通过管控区的功能管控接口,以根据功能管控接口中传入的枚举接口标识来确定调用请求所需要调用的功能接口。若根据功能管控接口中传入的枚举接口标识未找到调用请求所需要调用的功能接口时,可以通过公共调用接口返回空至发出调用请求的功能接口。
步骤S310,根据参数结构体指针调用所述功能接口。
具体地,当调用请求所需要调用的功能接口被确定后,计算机设备通过功能区的功能模块,将功能管控接口中的参数结构体指针传入到需要被调用的功能接口中,至此,完成一次功能接口的调用。
上述接口调用方法,设置有公共调用接口,通过该公共调用接口统一进行调用请求的中转,根据调用请求所携带的枚举功能标识可以确定调用所需的功能接口类,再利用调用请求所携带的枚举接口标识便可以确定调用所需的功能接口,进而依据参数结构体指针实现对功能接口的调用。由于各个功能接口间相分离,降低了在接口调用过程中各个功能接口之间的耦合度。
在一个实施例中,获取携带有调用参数的调用请求之前,该方法还包括:获取通过宏开关触发的控制指令;根据控制指令,选择与各功能接口类的功能接口相对应的功能接口源文件;根据功能接口源文件进行编译,以启用相应的功能接口和功能接口类。
其中,宏开关是指将一些命令组织在一起作为的一个单独的命令,这个单独的命令对应一个特定的任务。源文件是用汇编语言或高级语言写出来的代码保存为文件后的结果,功能接口源文件则是指实现功能接口的代码所属的源文件。
具体地,计算机设备通过管控区的管控模块,获取宏开关触发的控制指令,控制指令所对应的任务,可以是对功能接口的功能接口源文件的选择,也可以是对功能接口的卸载与装载,决定某个功能接口是否参与编译。当控制指令对应的任务为对功能接口的功能接口源文件进行选择时,计算机设备则通过管控区的管控模块,根据控制指令选择与各功能接口类的功能接口相对应的功能接口源文件,根据功能接口源文件对功能区的功能接口进行编译,以启用相应的功能接口和各个功能接口所对应的功能接口类。进一步的,功能接口源文件可以来自于不同的平台,功能接口源文件所包含的代码可以是相同功能的不同实现方式。
本实施例中,由于各个功能接口间相分离,通过宏开关的控制指令,自由地选择各功能接口类的功能接口相对应的功能接口源文件,或者自由地对功口进行装载与卸载,实现了功能接口的可配置性,能够面对产品不同的需求快速地进行对功能接口的变更。
在一个实施例中,功能接口类可以依赖基于Kconfig与Makefile设计实现的配置编译体系。
其中,Kconfig与Makefile均为一种配置文件。Kconfig中包括.config配置文件。一个配置编译体系中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。
具体地,在计算机软件系统的每个目录下都有Kconfig和Makefile两个文件,分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单,即Kconfig就是对应着内核的配置菜单。在执行内核配置时,从Kconfig中读出菜单,用户选择后保存在.config的内核配置文档中。在内核编译时,顶层的Makefile调用这个.config,就知道了用户的选择。本实施例中,通过Kconfig与Makefile设计的配置编译体系,实现了可交互式的配置方式。
在一个实施例中,向公共调用接口传入调用参数包括:将调用请求所携带的枚举功能标识、枚举接口标识和参数结构体指针,分别传入公共调用接口中的对应参数位,参数结构体指针的对应参数位采用无类型指针创建。
其中,参数位指公共调用接口的接口函数中每一个参数所对应的位置。无类型指针代表对参数指针的类型没有任何的限制,即可以接收所有类型的指针。具体地,公共调用接口的接口函数可以按照如下设计:
int CMD_handle(MFI_MOD mod,MFI_CMD cmd,void*para=NULL)
上述接口函数中,枚举功能标识所对应的参数位为MFI_MOD mod,枚举接口标识所对应的参数位为MFI_CMD cmd,为了通用性考虑,参数结构体指针的对应参数位采用了无类型指针创建,即void*para。
本实施例中,通过对公共调用接口的接口函数进行通用的设计,以实现功能接口的调用,降低了对调用参数类型的限制,提高了公共调用接口的通用度。
在一个实施例中,将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口包括:获取功能接口类的实例化对象指针;确定实例化对象指针指向的功能管控接口,功能管控接口采用与公共调用接口相同的计算机语言;将枚举接口标识和参数结构体指针传入到功能管控接口。
其中,实例化对象指针是功能接口类通过实例化所得到的指向功能管控接口的指针。
具体地,计算机设备通过管控区的管控模块,获取功能接口类通过实例化所得到的指向功能管控接口的指针,确定此实例化对象指针所指向的功能管控接口,功能管控接口采用与公共调用接口相同的计算机语言,可以但不限于为C++,将枚举接口标识和参数结构体指针传入到功能管控接口。
本实施例中,由于功能管控接口采用与公共调用接口相同的计算机语言,降低了交互区对功能区的功能接口进行控制的限制,使公共调用接口可以通过功能管控接口更方便地对功能接口进行控制。
在一个实施例中,功能接口类可以全部继承于按照如下设计的抽象类:
其中,抽象类是含有纯虚拟函数的类,不能生成对象,抽象类的目的是根据其格式来创建和修改新的类,对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。init()为对功能接口的初始化,release()为对功能接口的释放,start()为对功能接口的开启,stop()为对功能接口的关闭,handle(MFI_CMD cmd,void*para)便为功能管控接口的设计。handle(MFI_CMD cmd,void*para)中的MFI_CMD cmd为枚举接口标识的参数位,void*para为参数结构体指针的参数位。
具体地,将功能接口类全部继承于按照上述设计的抽象类,以此来实现抽象类中各个函数的实现。本实施例中,利用继承特性保持了整个管控区的统一风格。
在一个实施例中,获取功能接口类的实例化对象指针包括:通过功能接口类进行单次实例化,以生成实例化对象指针。
其中,单次实例化指在一次调用过程中仅实例化一次。
具体地,功能接口类采用单次实例化的方式,对功能接口类实例化一次,以生成实例化对象指针,避免了由于功能接口类实例化多次后,多余的实例化对象指针的产生,造成的资源浪费。
在一个实施例中,对接口调用方法进行举例说明,以需要调用功能接口(FUNCB1)为例。计算机设备通过交互区的交互模块,获取携带有调用参数的调用请求,调用参数包括枚举功能标识(MFI_MOD_FUNCB)、枚举接口标识(MFI_CMD_FUNCB1)和参数结构体指针((struct funcb1*)PARA),将调用参数传入公共调用接口(CMD_handle)中,如下:
CMD_handle(MFI_MOD_FUNCB,MFI_CMD_FUNCB1,(structfuncb1*)PARA);
公共调用接口(CMD_handle)会根据枚举功能标识(MFI_MOD_FUNCB)确定相应的功能接口类,并以此为依据获取到功能接口类的实例化对象指针,然后调用该实例化对象指针指向的功能管控接口(handle),将枚举接口标识(MFI_CMD_FUNCB1)和参数结构体指针((struct funcb1*)PARA)传入功能管控接口(handle)中,如下:
handle(MFI_CMD_FUNCB1,(structfuncb1*)PARA);
功能管控接口(handle)会根据枚举接口标识(MFI_CMD_FUNCB1)确定相应的功能接口(FUNCB1),并将参数结构体指针((structfuncb1*)PARA)传入功能接口(FUNCB1)中,如下:
FUNCB1((structfuncb1*)PARA);
至此完成一次模块间的调度。本实施例中,由于各个功能接口在被调用的过程中,调用方只需要与交互区的公共调用接口产生交互,仅会与交互区耦合,降低了在接口调用过程中各个功能接口之间的耦合度。
在一个实施例中,如图4所示,还提供了一种接口调用装置400,该装置包括交互模块402,管控模块404,功能模块406,其中:
交互模块402,用于获取携带有调用参数的调用请求,调用参数包括枚举功能标识、枚举接口标识和参数结构体指针;向公共调用接口传入调用参数,通过公共调用接口以根据枚举功能标识确定相应的功能接口类。
管控模块404,用于将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口;通过功能管控接口以根据枚举接口标识确定相应的功能接口;
功能模块406,用于根据参数结构体指针调用功能接口。
在一个实施例中,交互模块402还用于将调用请求所携带的枚举功能标识、枚举接口标识和参数结构体指针,分别传入公共调用接口中的对应参数位,参数结构体指针的对应参数位采用无类型指针创建。
在一个实施例中,管控模块404还用于:获取通过宏开关触发的控制指令;
根据控制指令,选择与各功能接口类的功能接口相对应的功能接口源文件;根据功能接口源文件进行编译,以启用相应的功能接口和功能接口类。
在一个实施例中,管控模块404还用于:获取功能接口类的实例化对象指针;确定实例化对象指针指向的功能管控接口,功能管控接口采用与公共调用接口相同的计算机语言;将枚举接口标识和参数结构体指针传入到功能管控接口。
在一个实施例中,管控模块404还用于通过功能接口类进行单次实例化,以生成实例化对象指针。
关于上述接口调用装置的具体限定可以参见上文中对于接口调用方法的限定,在此不再赘述。上述接口调用装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,也可以是终端。当该计算机设备为服务器时,其内部结构图可以如图1所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口调用方法。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,计算机程序被处理器执行时实现以下步骤:
获取携带有调用参数的调用请求,调用参数包括枚举功能标识、枚举接口标识和参数结构体指针;
向公共调用接口传入调用参数,通过公共调用接口以根据枚举功能标识确定相应的功能接口类;
将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口;
通过功能管控接口以根据枚举接口标识确定相应的功能接口;
根据参数结构体指针调用功能接口。
在一个实施例中,处理器执行计算机程序时,获取携带有调用参数的调用请求之前,还实现以下步骤:
获取通过宏开关触发的控制指令;
根据控制指令,选择与各功能接口类的功能接口相对应的功能接口源文件;
根据功能接口源文件进行编译,以启用相应的功能接口和功能接口类。
在一个实施例中,处理器执行计算机程序时,向公共调用接口传入调用参数包括:
将调用请求所携带的枚举功能标识、枚举接口标识和参数结构体指针,分别传入公共调用接口中的对应参数位,参数结构体指针的对应参数位采用无类型指针创建。
在一个实施例中,处理器执行计算机程序时,将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口包括:
获取功能接口类的实例化对象指针;
确定实例化对象指针指向的功能管控接口,功能管控接口采用与公共调用接口相同的计算机语言;
将枚举接口标识和参数结构体指针传入到功能管控接口。
在一个实施例中,处理器执行计算机程序时,获取功能接口类的实例化对象指针包括:
通过功能接口类进行单次实例化,以生成实例化对象指针。
上述对于计算机设备的限定可以参见上文中对于接口调用方法的具体限定,在此不再赘述。
请继续参阅图1,在一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,如图1中所示的非易失性存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取携带有调用参数的调用请求,调用参数包括枚举功能标识、枚举接口标识和参数结构体指针;
向公共调用接口传入调用参数,通过公共调用接口以根据枚举功能标识确定相应的功能接口类;
将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口;
通过功能管控接口以根据枚举接口标识确定相应的功能接口;
根据参数结构体指针调用功能接口。
在一个实施例中,处理器执行计算机程序时,获取携带有调用参数的调用请求之前,还实现以下步骤:
获取通过宏开关触发的控制指令;
根据控制指令,选择与各功能接口类的功能接口相对应的功能接口源文件;
根据功能接口源文件进行编译,以启用相应的功能接口和功能接口类。
在一个实施例中,处理器执行计算机程序时,向公共调用接口传入调用参数包括:
将调用请求所携带的枚举功能标识、枚举接口标识和参数结构体指针,分别传入公共调用接口中的对应参数位,参数结构体指针的对应参数位采用无类型指针创建。
在一个实施例中,处理器执行计算机程序时,将枚举接口标识和参数结构体指针传入由功能接口类实例化所得的功能管控接口包括:
获取功能接口类的实例化对象指针;
确定实例化对象指针指向的功能管控接口,功能管控接口采用与公共调用接口相同的计算机语言;
将枚举接口标识和参数结构体指针传入到功能管控接口。
在一个实施例中,处理器执行计算机程序时,获取功能接口类的实例化对象指针包括:
通过功能接口类进行单次实例化,以生成实例化对象指针。
上述对于计算机可读存储介质的限定可以参见上文中对于接口调用方法的具体限定,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种接口调用方法,所述方法包括:
获取携带有调用参数的调用请求,所述调用参数包括枚举功能标识、枚举接口标识和参数结构体指针;
向公共调用接口传入所述调用参数,通过所述公共调用接口以根据所述枚举功能标识确定相应的功能接口类,所述功能接口类继承于预设抽象类,通过所述预设抽象类派生出新的子类,得到所述功能接口类,所述枚举功能标识是调用参数中列举的所需功能的标识;
将所述枚举接口标识和参数结构体指针传入由所述功能接口类实例化所得的功能管控接口,所述功能管控接口用于传入的枚举接口标识来确定调用请求所调用的功能接口;
通过所述功能管控接口以根据所述枚举接口标识确定相应的功能接口;
根据所述参数结构体指针调用所述功能接口。
2.根据权利要求1所述的方法,其特征在于,所述获取携带有调用参数的调用请求之前,所述方法还包括:
获取通过宏开关触发的控制指令;
根据所述控制指令,选择与各功能接口类的功能接口相对应的功能接口源文件;
根据所述功能接口源文件进行编译,以启用相应的功能接口和功能接口类。
3.根据权利要求1所述的方法,其特征在于,所述向所述公共调用接口传入所述调用参数包括:
将所述调用请求所携带的枚举功能标识、枚举接口标识和参数结构体指针,分别传入所述公共调用接口中的对应参数位,所述参数结构体指针的对应参数位采用无类型指针创建。
4.根据权利要求1所述的方法,其特征在于,所述将所述枚举接口标识和参数结构体指针传入由所述功能接口类实例化所得的功能管控接口包括:
获取所述功能接口类的实例化对象指针;
确定所述实例化对象指针指向的功能管控接口,所述功能管控接口采用与所述公共调用接口相同的计算机语言;
将所述枚举接口标识和参数结构体指针传入到所述功能管控接口。
5.根据权利要求4所述的方法,其特征在于,所述获取所述功能接口类的实例化对象指针包括:
通过所述功能接口类进行单次实例化,以生成实例化对象指针。
6.一种接口调用装置,其特征在于,所述装置包括:
交互模块,用于获取携带有调用参数的调用请求,所述调用参数包括枚举功能标识、枚举接口标识和参数结构体指针;向公共调用接口传入所述调用参数,通过所述公共调用接口以根据所述枚举功能标识确定相应的功能接口类,所述功能接口类继承于预设抽象类,通过所述预设抽象类派生出新的子类,得到所述功能接口类,所述枚举功能标识是调用参数中列举的所需功能的标识;
管控模块,用于将所述枚举接口标识和参数结构体指针传入由所述功能接口类实例化所得的功能管控接口,所述功能管控接口用于传入的枚举接口标识来确定调用请求所调用的功能接口;通过所述功能管控接口以根据所述枚举接口标识确定相应的功能接口;
功能模块,用于根据所述参数结构体指针调用所述功能接口。
7.根据权利要求6所述的装置,其特征在于,所述管控模块还用于获取通过宏开关触发的控制指令;根据所述控制指令,选择与各功能接口类的功能接口相对应的功能接口源文件;根据所述功能接口源文件进行编译,以启用相应的功能接口和功能接口类。
8.根据权利要求6所述的装置,其特征在于,所述管控模块还用于获取所述功能接口类的实例化对象指针;确定所述实例化对象指针指向的功能管控接口,所述功能管控接口采用与所述公共调用接口相同的计算机语言;将所述枚举接口标识和参数结构体指针传入到所述功能管控接口。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述计算机程序被所述处理器执行时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811052830.3A CN109445845B (zh) | 2018-09-10 | 2018-09-10 | 接口调用方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811052830.3A CN109445845B (zh) | 2018-09-10 | 2018-09-10 | 接口调用方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109445845A CN109445845A (zh) | 2019-03-08 |
CN109445845B true CN109445845B (zh) | 2022-09-30 |
Family
ID=65530977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811052830.3A Active CN109445845B (zh) | 2018-09-10 | 2018-09-10 | 接口调用方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109445845B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377325A (zh) * | 2019-06-17 | 2019-10-25 | 中国平安人寿保险股份有限公司 | 接口配置方法、接口调用方法、装置、设备及存储介质 |
CN110597492B (zh) * | 2019-08-07 | 2023-12-08 | 深圳市元征科技股份有限公司 | 一种调用模块的方法和相关产品 |
CN110888646B (zh) * | 2019-11-28 | 2021-11-12 | 京东数字科技控股有限公司 | 部署方法、装置、系统和存储介质 |
CN111158695B (zh) * | 2019-12-19 | 2023-07-25 | 广州方硅信息技术有限公司 | 接口定位方法、装置、计算机设备和存储介质 |
CN113625998B (zh) * | 2021-08-10 | 2023-11-03 | 北京京东振世信息技术有限公司 | 一种请求处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5710925A (en) * | 1992-12-24 | 1998-01-20 | Microsoft Corporation | Method and system for aggregating objects |
CN101303644A (zh) * | 2007-05-08 | 2008-11-12 | 西北民族大学 | 基于Windows OS与Linux OS的梵音藏文输入法 |
CN107688924A (zh) * | 2017-06-26 | 2018-02-13 | 平安科技(深圳)有限公司 | 制证方法、装置及计算机可读存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1306366C (zh) * | 2003-07-18 | 2007-03-21 | 北京航空航天大学 | 组件适配器的实现方法 |
US7464142B2 (en) * | 2003-12-12 | 2008-12-09 | International Business Machines Corporation | Port type agnostic proxy support for web services intermediates |
CN100345110C (zh) * | 2005-08-26 | 2007-10-24 | 南京邮电大学 | 避免网格计算应用依赖底层开发工具箱的方法 |
CN103164270B (zh) * | 2011-12-12 | 2017-08-04 | 阿里巴巴集团控股有限公司 | java系统应用程序编程接口调用方法及系统 |
CN103297381B (zh) * | 2012-02-22 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 一种基于插件的业务访问方法及其系统 |
CN105335174B (zh) * | 2014-07-15 | 2018-11-20 | 阿里巴巴集团控股有限公司 | 一种非OSGi的Java应用程序调用OSGi服务的方法及装置 |
CN108255545B (zh) * | 2016-12-28 | 2022-09-02 | 阿里巴巴集团控股有限公司 | 组件间的功能调用方法、装置及组件化架构系统 |
CN107092501B (zh) * | 2017-03-20 | 2019-04-23 | 武汉斗鱼网络科技有限公司 | 一种Android系统中广告通用接口的实现方法及装置 |
-
2018
- 2018-09-10 CN CN201811052830.3A patent/CN109445845B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5710925A (en) * | 1992-12-24 | 1998-01-20 | Microsoft Corporation | Method and system for aggregating objects |
CN101303644A (zh) * | 2007-05-08 | 2008-11-12 | 西北民族大学 | 基于Windows OS与Linux OS的梵音藏文输入法 |
CN107688924A (zh) * | 2017-06-26 | 2018-02-13 | 平安科技(深圳)有限公司 | 制证方法、装置及计算机可读存储介质 |
Non-Patent Citations (3)
Title |
---|
CARH: service-oriented architecture for validating system-level designs;H. D. Patel 等;《IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》;20060530;1458-1474 * |
基于P/S和报童收益的铁道供电监控信息流处理研究;林宏平;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20151115(第11期);I138-12 * |
通过接口完全解耦;zhoubinwd;《https://blog.csdn.net/zhoubiwd/article/details/79349938》;20180222;1-3 * |
Also Published As
Publication number | Publication date |
---|---|
CN109445845A (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109445845B (zh) | 接口调用方法、装置、计算机设备和存储介质 | |
US8978023B2 (en) | Canonical mechanism for securely assembling features into a mobile application | |
CN108062252B (zh) | 一种信息交互方法、对象管理方法及装置和系统 | |
US8739147B2 (en) | Class isolation to minimize memory usage in a device | |
US9678767B2 (en) | Unified extensible firmware interface (UEFI) driver and protocol | |
US7712077B2 (en) | Method and system for instantiating components conforming to the “COM” specification in custom contexts | |
CN110020323B (zh) | 混合应用的页面切换方法、系统、计算机设备及存储介质 | |
CN112272218B (zh) | 云平台实例资源操作方法、装置、计算机设备及存储介质 | |
CN111459541B (zh) | 应用程序的打包方法、装置、计算机设备和存储介质 | |
CN110362356B (zh) | 函数数据处理方法、装置、计算机设备和存储介质 | |
WO2020199594A1 (zh) | 业务组件加载方法、装置、计算机设备和存储介质 | |
CN113297566A (zh) | 沙箱实现方法、装置、设备和存储介质 | |
US10482034B2 (en) | Remote attestation model for secure memory applications | |
Gomes et al. | A model-based concept for RTOS portability | |
CN102388363A (zh) | 以类别档案嵌入原生代码方式应用平台相依例行程序于虚拟机 | |
CN112631613A (zh) | 基于区块链平台的智能合约部署和调用方法及相关设备 | |
CN106778269B (zh) | 一种驱动层防注入方法、装置及客户端 | |
CN112416350A (zh) | 视图页面构建方法、装置、计算机设备和存储介质 | |
KR101392046B1 (ko) | 동적 라이브러리를 갖는 인터페이스를 단순화하는 방법, 시스템 및 컴퓨터 판독가능한 저장 매체 | |
CN106775608B (zh) | 独立系统进程的实现方法和装置 | |
CN111159271A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN112214213B (zh) | Linux内核的开发和管理方法、装置、计算机设备和存储介质 | |
CN111949301B (zh) | 应用程序热更新方法、装置和计算机可读存储介质 | |
CN109451064B (zh) | web应用的离线实现方法、装置、计算机设备和存储介质 | |
CN116302298A (zh) | 容器运行方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |