掌桥专利:专业的专利平台
掌桥专利
首页

事件派发方法、装置、设备及可读存储介质

文献发布时间:2024-04-18 20:02:40


事件派发方法、装置、设备及可读存储介质

技术领域

本公开涉及虚幻引擎技术领域,尤其涉及一种事件派发方法、装置、设备及可读存储介质。

背景技术

在三维仿真技术中,通过虚幻引擎,开发者可方便的利用GamePlay框架提供的子系统功能,在分析业务需求的基础上,构建不同功能模块,实现业务逻辑拆分,各功能模块之间可通过委托方式实现全局的相互调用。

而虚幻引擎的委托系统是其核心功能之一,用于实现事件驱动的编程和回调机制,可用于创建高度可定制的事件驱动应用程序。它提供了灵活性和可扩展性,使开发者能够以更简单、更模块化的方式编写游戏逻辑,并允许蓝图设计师和非编程人员参与事件处理的配置。这一特性使得虚幻引擎成为创建复杂游戏和交互应用的首选引擎之一。

但是通过虚幻引擎进行全局中不同对象之间的通信时,通信过程中的监听者和派发者有可能是基于C++代码或者蓝图而实现的,在现有技术中,C++代码和蓝图是两种不同的编程工具,无法直接进行两者之间的通信,从而导致通过虚幻引擎进行全局中不同对象之间的通信的兼容性较低。

发明内容

为克服相关技术中存在的问题,本公开提供一种事件派发方法、装置、设备及可读存储介质,以解决通过虚幻引擎进行全局中不同对象之间的通信的兼容性较低的问题。

根据本公开实施例的第一方面,提供一种事件派发方法,应用于虚幻引擎中的事件系统,方法包括:

接收派发者派发的事件;

基于所述事件,获取订阅所述事件的目标监听者,所述目标监听者绑定有回调函数;

在所述回调函数的第一参数类型与所述事件的第二参数类型不匹配的情况下,将所述第二参数类型转换与所述第一参数类型匹配的目标参数类型;

根据所述目标参数类型,向所述目标监听者发送所述事件;

根据本公开实施例的第二方面,提供一种事件派发装置,包括:

第一接收模块,用于接收派发者派发的事件;

第一获取模块,用于基于所述事件,获取订阅所述事件的目标监听者,所述目标监听者绑定有回调函数;

转换模块,用于在所述回调函数的第一参数类型与所述事件的第二参数类型不匹配的情况下,将所述第二参数类型转换与所述第一参数类型匹配的目标参数类型;

发送模块,用于根据所述目标参数类型,向所述目标监听者发送所述事件;

根据本公开实施例的第三方面,提供一种车辆,存储有一组指令集,所述指令集被所述车辆执行,以实现本公开第一方面所提供的事件派发方法。

根据本公开实施例的第四方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本公开第一方面所提供的事件派发方法。

根据本公开实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面所提供的事件派发方法的步骤。

本公开的实施例提供的技术方案可以包括以下有益效果:通过接收派发者派发的事件,并获取订阅事件的目标监听者,在目标监听者的回调函数的第一参数类型与事件的第二参数类型不一致的情况下,将第二参数类型转换为与第一参数类型匹配的目标参数类型,从而实现派发者与目标监听者之间的事件收发,能够在派发者与目标监听者为不同编程语言时,通过参数转换实现不同编程语言的对象之间的事件收发,从而提高虚幻引擎进行全局中不同对象之间的通信的兼容性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的一种事件派发方法的流程图。

图2是根据一示例性实施例示出的一种事件派发装置的框图。

图3是根据一示例性实施例示出的一种车辆的框图。

图4是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

下面将结合附图详细地对示例性实施例进行描述说明。

应当指出,相关实施例及附图仅为描述说明本公开所提供的示例性实施例,而非本公开的全部实施例,也不应理解本公开受相关示例性实施例的限制。

应当指出,本公开中所用术语“第一”、“第二”等仅用于区别不同步骤、设备或模块等。相关术语既不代表任何特定技术含义,也不表示它们之间的顺序或者相互依存关系。

应当指出,本公开中所用术语“一个”、“多个”、“至少一个”的修饰是示意性而非限制性的。除非在上下文另有明确指出,否则应该理解为“一个或多个”。

应当指出,本公开中所用术语“和/或”,用于描述关联对象之间的关联关系,一般表示至少存在三种关联关系。例如,A和/或B,至少可以表示:单独存在A,同时存在A和B,单独存在B这三种关联关系。

应当指出,本公开的方法实施例中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。除非特别说明,本公开的范围不受相关实施例中步骤的描述顺序限制。

需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。

示例性方法

图1是根据一示例性实施例示出的一种事件派发方法的流程图,如图1所示,事件派发方法用于虚幻引擎中的事件系统,包括以下步骤。

在步骤S110中,接收派发者派发的事件;

在步骤S120中,基于所述事件,获取订阅所述事件的目标监听者,所述目标监听者绑定有回调函数;

虚幻引擎(Unreal Engine)提供了丰富的资源库和工具,帮助开发者快速创建高质量的游戏。它支持多种编程语言,如C++和蓝图,使得开发者可以根据自己的需求选择合适的开发方式。在虚幻引擎中,事件系统通提供了创建和注册事件的方法。派发者可以定义自己的事件类型,并在事件发生时触发这些事件。然后,监听者通过订阅事件的方法,将事件处理器与特定事件关联起来。当事件被触发时,相关的事件处理器将被调用,以执行相应的代码或逻辑。

在本实施例中,派发者与目标监听者即为事件的发起方和接收方,在一个示例中,当本申请的应用场景为游戏开发时,派发者和监听者可以是不同的游戏角色,并通过收发事件完成角色之间的通信、任务完成、触发剧情事件等。当本申请的应用场景为虚拟现实和增强现实场景时,派发者和监听者可有是用户和虚拟对象,并通过收发事件完成用户和虚拟对象之间的通信以及场景中的事件。

另外,本申请的应用场景还可以包括:

多人在线游戏(MMO):在MMO游戏中,全局事件系统可以用于管理大量玩家之间的交互、公告事件、服务器广播等。它可以支持多个玩家之间的通信和协作。

仿真和模拟:在仿真和模拟应用中,全局事件系统可用于模拟现实世界中的事件和情境。例如,用于飞行模拟器中的飞行控制事件或交通仿真中的交通事件。

教育和培训:在教育和培训领域,全局事件系统可用于创建交互式教育内容,处理学习者之间的互动以及触发教学事件。

物联网(IoT):在IoT应用中,全局事件系统可用于处理设备之间的通信和数据传输。它可以用于创建智能家居、工业自动化等应用。

多平台应用:无论是移动应用、桌面应用还是Web应用,全局事件系统都可以用于处理不同平台上的事件和通信。

可视化编程:在可视化编程环境中,全局事件系统可以用于创建复杂的交互逻辑,将不同的可视化组件连接起来,实现各种应用。

总之,事件系统是一个通用的工具,可以适用于各种应用领域,帮助开发者管理和处理事件,改善代码结构,提高应用的可维护性和可扩展性。

上述目标监听者即为订阅了该事件的监听者,并且每一监听者都绑定有回调函数,只有绑定了回调函数的监听者才为有效监听者,回调函数用于响应并处理派发者派发的事件。其中,回调函数包括三种参数类型,并且与事件的编程类型相对应,如下所述:

UFunction:通过在事件上下文中查找指定回调函数名的UFunction进行绑定,在蓝图对象中使用。

单播动态委托函数:委托函数的参数类型为泛型类型,在蓝图对象和C++对象均可使用。

Lambda函数:Lambda函数的参数类型为泛型类型,在C++对象中使用。

在步骤S130中,在所述回调函数的第一参数类型与所述事件的第二参数类型不匹配的情况下,将所述第二参数类型转换与所述第一参数类型匹配的目标参数类型;

在本实施例中,在事件处理中,事件中携带有事件参数,当事件被触发时,需要将事件参数传递给相应的回调函数进行处理。因此,回调函数的参数类型必须与事件的参数类型相匹配。这意味着回调函数的第一参数类型需要与事件的第二参数类型相一致。如果回调函数的第一参数类型与事件的第二参数类型不匹配,那么可能会导致类型转换错误、程序崩溃或其他不可预期的行为,进而导致事件将无法被正确地处理。因此,在识别到事件的第一参数类型,且第一参数类型与第二参数类型不匹配的情况下,可以要将第一参数类型转换为与第二参数类型相匹配的目标参数类型。

事件参数的参数类型可以包括无参类型、原生参数类型以及复合参数类型,其中,无参类型:不传递参数,派发者只通知监听者事件触发。原生参数类型:支持原生数据类型,如int,float,bool,FString,FVector等。复合参数类型:支持基于UStruct和UObject定义复杂参数类型。

相对应的,监听者可以使用与上述参数类型相对应的第二参数类型接收事件,还可以使用泛型类型接收事件,泛型类型为FProperty类,可通过虚幻引擎的反射系统解析为与第一参数类型相匹配的特定参数类型。作为一个示例,在第一参数类型为原生参数类型时,第二参数类型可以为原生参数类型,也可以为泛型类型。在为泛型类型的情况下,可以将泛型类型转换为与第一参数类型相对应的原生参数类型。

另外,还可以使用自定义的CustomThunk方法实现泛型蓝图节点,即从蓝图虚拟机中获取输入参数,调用C++方法实现泛型参数向不同类型参数的转换,以此实现蓝图和C++间不同消息类型的参数转换,完成蓝图对象和C++对象间的双向通信。

另外,上述的回调函数包括三种类型的回调函数,具体的,包括:

UFunction:通过在事件上下文中查找指定回调函数名的UFunction进行绑定,在蓝图对象中使用。

单播动态委托函数:委托函数的参数类型为泛型类型,在蓝图对象和C++对象均可使用。

Lambda函数:Lambda函数的参数类型为泛型类型,在C++对象中使用。

本领域技术人员可以根据需要选用不同类型的回调函数接收事件,本实施例在此不做限制。另外,还需说明的是需要说明的是,由于UFunction只能在蓝图对象中使用,而Lambda函数只能在C++对象中使用,而单播动态委托函数在两种编程语言中均能使用,因此,通过参数转换就可以实现蓝图对象和C++对象之间的事件收发和通信。

在步骤S140中,根据所述目标参数类型,向所述目标监听者发送所述事件。

在本实施例中,通过接收派发者派发的事件,并获取订阅事件的目标监听者,在目标监听者的回调函数的第一参数类型与事件的第二参数类型不一致的情况下,将第二参数类型转换为与第一参数类型匹配的目标参数类型,从而实现派发者与目标监听者之间的事件收发,能够在派发者与目标监听者为不同编程语言时,通过参数转换实现不同编程语言的对象之间的事件收发,从而提高虚幻引擎进行全局中不同对象之间的通信的兼容性。

在本申请的一实施例中,所述基于所述事件,获取订阅所述事件的目标监听者,包括:

获取所述事件所携带的第一事件标识,从预设的映射表中查找与所述第一事件标识所匹配的第二事件标识,所述第二事件标识与第一监听者相匹配,所述第一事件标识为与所述事件对应的唯一标识;

获取所述第一监听者的所绑定的回调函数;

在所述回调函数的状态为可用状态的情况下,将所述第一监听者确定为目标监听者。

在本实施例中,第一事件标识表示对应的事件是唯一的,其表示形式包括两种,其中一种为可使用FString类型双主键的形式。具体的,双主键中的主键1可以为领域名称,通常可定义为模块名,该主键可使用缺省的名称。双主键中的主键2为事件名称,在同一领域内事件名称是唯一的。主键1和主键2拼接为第一事件标识。另一种可以为使用虚幻引擎Tag的形式。具体的,可以使用虚幻引擎GamePlay框架提供的Tag标签标识派发者和监听者,从而对其发起的事件进行标识。

映射表中关联存储有第二事件标识以及与第二事件标识对应的第一监听者。在进行第一事件标识与第二事件标识的匹配时,可以对比第一事件标识与第二事件标识是否相同,从而从映射表中查找到与第一事件标识匹配的第二事件标识。因此,第二事件标识是与监听者对应的标识,用于与第一事件标识进行匹配,从而在所有的监听者中查找到订阅该事件的第一监听者。

在确定订阅该事件的第一监听者后,由于只有绑定了可用回调函数的第一监听者才能接收到事件,因此还需要对第一监听者的回调函数的状态进行校验,从而将回调函数的状态为可用状态的第一监听者确定为目标监听者。

在本实施例中,通过第一事件标识和第二事件标识的匹配,从映射表中查找事件的目标监听者,从而将事件发送至目标监听者,进而使得派发者和监听者之间能够通过映射表进行通信,而不是直接相互引用,实现了派发者和监听者之间的松耦合通信,降低了派发者和监听者之间的直接依赖性,提高了代码的模块化和可维护性。

在本申请一实施例中,向所述目标监听者发送所述事件,包括:

在所述第一事件标识为事件保持性标识,且所述派发者与所述目标监听者之间的消息派发模式为异步派发模式的情况下,获取所述派发者的生存状态,所述事件保持性标识用于保证在事件发出后添加的监听者对事件进行订阅;

在所述生存状态为生存的情况下,向所述目标监听者发送所述事件。

上述的异步派发模式指的是派发者当一个事件被派发后,不需要等待该事件完成,派发者可以继续执行其他派发任务或进行其他操作的模式。而事件保持性标识则用于标识该事件在派发后,若新增有对该事件进行订阅的监听者,也可以接收到该事件。

因此,在本实施例中,为保证派发者和监听者之间的通信的正确性,防止在派发该事件的派发者销毁之后,该事件仍在事件系统中流转,而造成通信混乱,需要对派发者的生存状态进行判断,只有在派发者的生存状态为生存的情况下,才向目标监听者发送该事件。其中,派发者的生存状态可以使用UObject类型的事件上下文进行标识,UObject的生命周期由虚幻引擎的垃圾回收系统管理,该系统可对UObject对象进行生存状态标记。

在本实施例中,通过在异步派发模式下,对派发者的生存状态进行判断,从而决定是否派发事件,使得异步通信的处理更加灵活。无论监听者何时注册,都能够接收到已触发的事件,这对于需要处理异步操作的场景非常有益。能够保证异步派发模式的正常运行。

在本申请的一实施例中,所述接收派发者派发的事件之前,所述方法还包括:

接收监听者发送的注册请求,所述注册请求包括所述第二事件标识、第一事件上下文和回调函数,其中,所述第二事件标识用于标识所述监听者待监听的事件,所述第一事件上下文用于定义所述监听者的生存周期;

根据所述注册请求,在所述映射表中对所述监听者、所述第二事件标识、所述第一事件上下文和所述回调函数进行关联存储。

在本实施例中,为了实现监听者对事件的订阅,可以接收监听者发送的注册请求,而注册请求中的第二事件标识即表示监听者所要订阅的事件,在后续事件系统检测到派发者发送的事件后,可以直接比对事件的第一事件标识与第二事件标识是否一致,来接收该事件。第一事件上下文可以采用UObject类型,用于定义监听者的生存周期,也即回调函数的生存周期。在回调函数的生存周期到期后,对应的监听者的生存周期就也到期了。

在事件系统接收到注册请求后,即可在上述的映射表中将监听者、第二事件标识和第一事件上下文关联进行存储,从而在后续查找时,可以直接在映射表中查找目标监听者。

在本实施例中,通过接收监听者发送的注册请求,可以实现监听者在事件系统中的注册以及订阅,同时使得派发者和监听者之间可以无需进行交互,达到两者的通信解耦的效果。

在本申请的一实施例中,所述根据所述第二事件标识和所述第一事件上下文,在所述映射表中对所述监听者、所述第二事件标识和所述第一事件上下文进行关联存储之后,所述方法还包括:

获取所述映射表中的第二事件上下文;

根据所述第二事件上下文确定所述监听者的生存状态;

在所述生存状态为结束的情况下,在所述映射表中移除与所述第二事件上下文对应的监听者。

在本实施例中,第二事件上下文用于表示映射表中所有监听者的生命周期;在监听者的生命周期到期的情况下,则认为监听者的生存状态为结束状态。因此可以映射表中删除与第二事件上下文的监听者。在判断监听者的生命周期时,可以通过获取与监听者对应的回调函数的生命周期来确定监听者的生命周期,在回调函数的生命周期到期的情况下,则可以认为监听者的生命周期到期。

在本实施例中,可以通过实时获取映射表中所有监听者的第二事件上下文,对失效的监听者移除,实现了对映射表进行维护以及修改,使得事件派发的效率更高,进而提高派发者和监听者之间的通信效率。

在本申请的一实施例中,所述在所述生存状态为结束的情况下,在所述映射表中移除与所述第二事件上下文对应的监听者之后,所述方法还包括:

接收监听者发送的注销请求;

响应所述注销请求,在所述映射表中移除与所述注销请求对应的第二事件标识和所述回调函数。

在本实施例中,若监听者需要结束对该事件的监听,则可以发送注销请求至事件系统,其中,注销请求可以包括待注销标识和或待注销回调函数。在注销请求包括待注销标识时,可以在映射表中删除与待注销标识的第二事件标识以及回调函数,从而将该监听者在映射表中删除。或者,还可以直接将回调函数的生存状态设置为结束,从而使得该监听者无效,同样可以达到注销的目的。

在本实施例中,通过接收监听者发送的注销请求,从而在映射表中移除该监听者,能够实现监听者的自由注销,无需与派发者进行交互,降低了监听者和派发者之间的耦合性。

在本申请的一实施例中,所述根据所述目标参数类型,向所述目标监听者发送所述事件之后,所述方法还包括:

对所述事件进行追踪,得到所述事件的流转信息;

根据所述流转信息,对所述事件系统进行调试。

在本实施例中,上述的流转信息可以包括事件的触发顺序、触发时间戳、事件类型等信息。可以通过事件流追踪器工具对派发后的事件进行追踪,从而用于检测事件是否按预期触发。

另外,除了对事件进行追踪之外,还可以通过事件监听器视图显示当前注册的事件监听者及其绑定的事件。使得开发者能够查看哪些对象监听了哪些事件。可以通过记录事件系统的活动到一个事件日志,可以根据需要查看。这包括事件触发、监听者事件执行、错误和异常信息等。以及还可以通过事件参数查看器,用于当事件触发时,可以显示事件的参数和数据,以帮助开发者了解事件的上下文和内容,协助问题诊断。

在本实施例中,可以通过上述功能对事件系统进行调试,从而可以加速事件派发过程中的问题的定位和修复,提高事件系统的开发效率和稳定性。

示例性装置

图2是根据一示例性实施例示出的一种事件派发装置框图。参照图2,该装置200包括第一接收模块210,第一获取模块220,转换模块230和发送模块240。

该第一接收模块210,用于接收派发者派发的事件;

该第一获取模块220,用于基于所述事件,获取订阅所述事件的目标监听者,所述目标监听者绑定有回调函数;

该转换模块230,用于在所述回调函数的第一参数类型与所述事件的第二参数类型不匹配的情况下,将所述第二参数类型转换与所述第一参数类型匹配的目标参数类型;

该发送模块240,用于根据所述目标参数类型,向所述目标监听者发送所述事件。

可选地,所述第一获取模块220,包括:

第一获取子模块,用于获取所述事件所携带的第一事件标识,从预设的映射表中查找与所述第一事件标识所匹配的第二事件标识,所述第二事件标识与第一监听者相匹配,所述第一事件标识为与所述事件对应的唯一标识;

第二获取子模块,用于获取所述第一监听者的所绑定的回调函数;

确定子模块,用于在所述回调函数的状态为可用状态的情况下,将所述第一监听者确定为目标监听者。

可选地,所述发送模块240,还包括:

第三获取子模块,用于在所述第一事件标识为事件保持性标识,且所述派发者与所述目标监听者之间的消息派发模式为异步派发模式的情况下,获取所述派发者的生存状态,所述事件保持性标识用于保证在事件发出后添加的监听者对事件进行订阅;

发送子模块,用于在所述生存状态为生存的情况下,向所述目标监听者发送所述事件。

可选地,所述事件派发装置200,还包括:

第二接收模块,用于接收监听者发送的注册请求,所述注册请求包括所述第二事件标识、第一事件上下文和回调函数,其中,所述第二事件标识用于标识所述监听者待监听的事件,所述第一事件上下文用于定义所述监听者的生存周期;

存储模块,用于根据所述注册请求,在所述映射表中对所述监听者、所述第二事件标识、所述第一事件上下文和所述回调函数进行关联存储。

可选地,所述事件派发装置200,还包括:

第二获取模块,用于获取所述映射表中的第二事件上下文;

确定模块,用于根据所述第二事件上下文确定所述监听者的生存状态;

第一移除模块,用于在所述生存状态为结束的情况下,在所述映射表中移除与所述第二事件上下文对应的监听者。

可选地,所述事件派发装置200,还包括:

第三接收模块,用于接收监听者发送的注销请求;

响应模块,用于响应所述注销请求,在所述映射表中移除与所述注销请求对应的第二事件标识和所述回调函数。

可选地,所述事件派发装置200,还包括:

追踪模块,用于对所述事件进行追踪,得到所述事件的流转信息;

调试模块,用于根据所述流转信息,对所述事件系统进行调试。

示例性车辆

图3是根据一示例性实施例示出的一种车辆300的框图。该车辆300可以是燃油车辆、混合动力车辆、电动车辆、燃料电池车辆或者其他类型的车辆。

参照图3,车辆300可包括多个子系统,例如,驱动系统310、控制系统320、感知系统330、通信系统340、信息显示系统350以及计算处理系统360。车辆300还可以包括更多或更少的子系统,且各个子系统还可以包括多个部件,在此不一一赘述。

该驱动系统310,包括为车辆300提供动力运动的组件。例如,发动机、能量源、传动装置等。

该控制系统320,包括为车辆300提供控制的组件。例如,车辆控制、座舱设备控制、驾驶辅助控制等。

该感知系统330,包括为车辆300提供周边环境感知的组件。例如,车辆定位系统、激光传感器、语音传感器、超声波传感器、摄像设备等。

该通信系统340,包括为车辆300提供通信连接的组件。例如,移动通信网络(如,3G、4G、5G网络等)、WiFi、蓝牙、车联网等。

该信息显示系统350,包括为车辆300提供各种信息显示的组件。例如,车辆信息显示、导航信息显示、娱乐信息显示等。

该计算处理系统360,包括为车辆300提供数据计算和处理能力的组件。计算处理系统360可包括至少一个处理器361和存储器362。处理器361可以执行存储在存储器362中的指令。

处理器361可以是任何常规的处理器,诸如商业可获得的CPU。处理器还可以包括诸如图像处理器(Graphic Process Unit,GPU),现场可编程门阵列(Field ProgrammableGateArray,FPGA)、片上系统(System on Chip,SOC)、专用集成芯片(ApplicationSpecific Integrated Circuit,ASIC)或它们的组合。

存储器362可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

在本公开实施例中,存储器362中存储有一组指令集,处理器361可以执行该指令集,以实现上述示例性实施例中任一所述的事件派发方法的全部或部分步骤。

示例性电子设备

图4是根据一示例性实施例示出的一种电子设备400的框图。该电子设备400可以是车辆控制器、车载终端、车载计算机或者其他类型的电子设备。

参照图4,电子设备400,可包括至少一个处理器410和存储器420。处理器410可以执行存储在存储器420中的指令。处理器410通过数据总线与存储器420通信连接。除存储器420外,处理器410还可通过数据总线与输入设备430、输出设备440、通信设备450通信连接。

处理器410可以是任何常规的处理器,诸如商业可获得的CPU。处理器还可以包括诸如图像处理器(Graphic Process Unit,GPU),现场可编程门阵列(Field ProgrammableGateArray,FPGA)、片上系统(System on Chip,SOC)、专用集成芯片(ApplicationSpecific Integrated Circuit,ASIC)或它们的组合。

存储器420可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

在本公开实施例中,存储器420中存储有可执行指令,处理器410可以从所述存储器420中读取所述可执行指令,并执行所述指令以实现上述示例性实施例中任一所述的事件派发方法的全部或部分步骤。

示例性计算机可读存储介质

除了上述方法和装置以外,本公开的示例性实施例还可以是计算机程序产品或存储有该计算机程序产品的计算机可读存储介质。该计算机产品中包括计算机程序指令,该计算机程序指令可被处理器执行,以实现上述示例性实施例中任一方法中描述的的全部或部分步骤。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言以及脚本语言(例如Python)。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线电连接的静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘,或者上述的任意合适的组合。

本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 一种事件顺序记录上报方法、装置、设备及可读存储介质
  • 存储设备在线检测方法、装置、设备及可读存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种存储池创建方法、装置、设备及可读存储介质
  • 存储设备的系统重置方法、装置、系统及可读存储介质
  • 订单派发方法、订单派发装置、及计算机可读存储介质
  • 订单派发方法、订单派发装置和可读存储介质
技术分类

06120116586929