CN109582318A - Portobuf本地化的处理方法、装置、终端及存储介质 - Google Patents

Portobuf本地化的处理方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN109582318A
CN109582318A CN201811561652.7A CN201811561652A CN109582318A CN 109582318 A CN109582318 A CN 109582318A CN 201811561652 A CN201811561652 A CN 201811561652A CN 109582318 A CN109582318 A CN 109582318A
Authority
CN
China
Prior art keywords
protobuf
class
information
local
portobuf
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.)
Granted
Application number
CN201811561652.7A
Other languages
English (en)
Other versions
CN109582318B (zh
Inventor
李凯达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201811561652.7A priority Critical patent/CN109582318B/zh
Publication of CN109582318A publication Critical patent/CN109582318A/zh
Application granted granted Critical
Publication of CN109582318B publication Critical patent/CN109582318B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Abstract

本发明实施例公开了一种portobuf本地化的处理方法、装置、终端及存储介质。其中,该方法包括:当portobuf源码中的信息发生更改时,获取基于portobuf源码编译后生成的protobuf类;根据portobuf源码中发生更改的信息对基于所述原始protobuf类创建的本地protobuf类执行查错操作;根据portobuf源码中发生更改的信息以及查错结果对所述本地protobuf类进行修改。本发明实施例的技术方案,使得在服务端信息发生更改时,所述原始protobuf类不会覆盖本地protobuf类中所包含的本地扩展方法等,无需重新进行本地编码,节省了时间,解决了现有技术中由于重新生成protobuf类覆盖了原来的protobuf类而导致的代码维护繁琐复杂且易出错等技术问题,使得本地端业务实现过程具有高兼容性、高容错率以及维护方便等特点,实现了portobuf的本地化处理。

Description

Portobuf本地化的处理方法、装置、终端及存储介质
技术领域
本发明实施例涉及计算机应用技术领域,尤其涉及一种portobuf本地化的处理方法、装置、终端及存储介质。
背景技术
Google Protocol Buffer(简称Protobuf)是一种轻便高效可扩展的结构化数据存储格式,是一种平台无关、语言无关的序列化数据结构的协议,被广泛应用于通讯协议和数据存储等领域。
Protobuf可以通过自带编译器将protobuf源码便已生成本地可用的文件。但是,由于自动编译生成的protobuf类往往只包含基本的业务,在实际使用时,本地端常常会对protobuf类进行扩展,比如补充定义一些字段,或者扩展了一些方法等,而一旦重新生成protobuf类覆盖了原来的protobuf类,则需要重新添加本地扩展字段或者进行繁琐复杂的修改操作,费时费力,而且很容易出错,用户体验较差。
发明内容
本发明实施例提供了一种portobuf本地化的处理方法、装置、终端及存储介质,能够解决由于重新生成protobuf类覆盖了原来的protobuf类而导致的代码维护繁琐复杂且易出错等技术问题,使得本地端业务实现过程具有高兼容性、高容错率以及维护方便等特点。
第一方面,本发明实施例提供了一种portobuf本地化的处理方法,该方法包括:
当portobuf源码中的信息发生更改时,获取基于portobuf源码编译后生成的protobuf类;
根据portobuf源码中发生更改的信息对基于所述原始protobuf类创建的本地protobuf类中执行查错操作;
根据portobuf源码中发生更改的信息以及查错结果对所述本地protobuf 类进行修改,其中,所述本地protobuf类包括本地扩展方法,所述本地扩展方法调用所述原始protobuf类中的信息。
第二方面,本发明实施例还提供了一种portobuf本地化的处理装置,该装置包括:
原始protobuf类生成模块,用于当portobuf源码中的信息发生更改时,获取基于portobuf源码编译后生成的protobuf类;
本地protobuf类查错模块,用于根据portobuf源码中发生更改的信息对基于所述原始protobuf类创建的本地protobuf类中执行查错操作;
本地protobuf类修改模块,用于根据portobuf源码中发生更改的信息以及查错结果对所述本地protobuf类进行修改,其中,所述本地protobuf类包括本地扩展方法,所述本地扩展方法调用所述原始protobuf类中的信息。
第三方面,本发明实施例还提供了一种终端,所述终端包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明中任一实施例所述的portobuf本地化的处理方法。
第四方面,本发明实施例又提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明中任一实施例所述的portobuf本地化的处理方法。
本发明实施例的技术方案,通过在portobuf源码中的信息发生更改时,获取基于portobuf源码编译后生成的protobuf类,使得在服务端信息发生更改时,本地端能够及时自动更新,节省了对基本业务的手动创建;进而,由于基于所述原始protobuf类创建了本地protobuf类,使得所述原始protobuf类不会覆盖本地protobuf类中所包含的本地扩展方法等,无需重新进行本地编码,节省了时间,而且,本地protobuf类中的本地扩展方法能够调用所述原始 protobuf类中的信息,根据portobuf源码中发生更改的信息以及查错结果对所述本地protobuf类进行修改根据portobuf源码中发生更改的信息对基于所述原始protobuf类创建的本地protobuf类中执行查错操作,并根据portobuf 源码中发生更改的信息以及查错结果对所述本地protobuf类进行修改,使得本地扩展方法仍然能够顺利执行,解决了现有技术中由于重新生成protobuf类覆盖了原来的protobuf类而导致的代码维护繁琐复杂且易出错等技术问题,使得本地端业务实现过程具有高兼容性、高容错率以及维护方便等特点,实现了 portobuf的本地化处理。
附图说明
为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1是本发明实施例一所提供的一种portobuf本地化的处理方法的流程图;
图2是本发明实施例二所提供的一种portobuf本地化的处理装置的结构图;
图3是本发明实施例三所提供的一种终端的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一所提供的一种portobuf本地化的处理方法的流程示意图,该方法可以由本发明实施例所提供的portobuf本地化的处理装置执行,该装置可以由软件和/或硬件来实现,可以配置于终端中由服务器和终端配合实现本实施例所提供的portobuf本地化的处理方法。
如图1所示,本实施例的方法具体包括:
S110、当portobuf源码中的信息发生更改时,获取基于portobuf源码编译后生成的原始protobuf类。
Proto文件是protobuf一个重要的文件,它定义了需要序列化数据的结构。在使用protobuf时,首先需要在proto文件中定义消息格式,然后用protobuf 自带的编译器进行编译,编译成Java、python、C++、C#、Go等本地端可用的代码,以供本地端直接使用。
由于在本地端生成的protobuf类由proto源文件自动编译生成,因此,如果Proto文件中的数据发生改变,例如更换接口或者增加字段等,则需要根据更改后的数据在本地重新生成protobuf类,覆盖原来的protobuf类。
其中,portobuf源码中的信息发生更改包括添加查询字段,还包括变更信息,例如,变更信息内容和/或变更信息类型等。
S120、根据portobuf源码中发生更改的信息对基于所述原始protobuf类创建的本地protobuf类中执行查错操作。
为了便于修改,提高修改的效率,可选地,基于调用报错提示信息查询并获取基于所述原始protobuf类创建的本地protobuf类中与所述变更信息对应的报错字段信息;进而,根据所述变更信息对所述报错字段信息进行修改。示例性地,可以在本地protobuf类的父类中添加报错方法,调用所述报错方法对所述protobuf类执行查错操作,并在检测到执行错误信息时生成报错提示信息,以供用户查看。本技术方案,相比较于维护人员逐行去手动差错的方式,修改效率更高,而且不容易发生修改遗漏,省时省力。
可选地,还可以通过给中间转换信息赋值的方式来实现本地protobuf类中与portobuf源码中发生更改的信息对应的修改。为具体可以包括:获取基于所述原始protobuf类创建的本地protobuf类中与portobuf源码中发生更改的信息对应的原始信息,以及所述原始信息对应的中间转换信息;其中,所述原始信息赋值给所述中间转换信息;将所述原始信息替换为portobuf源码中发生更改的信息,赋值给所述中间转换信息。这样设置的好处在于,如果只是信息的简单替换可能仅需要修改给所述中间转换信息赋值的语句即可,需要修改的字段较少,修改效率高且出错率低。
可以理解的是,在根据portobuf源码中发生更改的信息对基于所述原始protobuf类创建的本地protobuf类中执行查错操作之前,还包括:利用本地工具库基于所述原始protobuf类创建本地protobuf类。其中,所述本地 protobuf类包括本地扩展方法,所述本地扩展方法调用所述原始protobuf类中的信息。可以进一步建立protobuf类中各第一字段的关键字与本地protobuf 类中各第二字段的关键字之间的对应关系;其中,所述第二字段与第一字段的值相同。例如,原始protobuf类中的第一字段为name,本地protobuf类中对应的第二字段可以用local_name。
S130、根据portobuf源码中发生更改的信息以及查错结果对所述本地 protobuf类进行修改。
可选地,所述portobuf源码中发生更改的信息为添加查询字段;所述根据portobuf源码中发生更改的信息以及查错结果对所述本地protobuf类进行修改,包括:在本地protobuf类中添加或者修改本地扩展对象,以使所述本地扩展对象包括原始查询字段以及所述添加的查询字段。
举例而言,最初查询某条信息的时候需要用到的关键字段为页数和用户名,现在需要加入时间戳,则需要将关键字段更改为页数、用户名和时间戳,此时可以在本地portobuf类的字段表中添加时间戳的字段即可。
可选地,所述portobuf源码中发生更改的信息为变更信息,所述变更信息包括变更信息内容和/或变更信息类型;相应地,所述根据portobuf源码中发生更改的信息以及查错结果对所述本地protobuf类进行修改,包括:对基于所述原始protobuf类创建的本地protobuf类中与所述变更信息对应的调用信息进行修改。
举例而言,历史portobuf类调用的是接口A和B,但现在要修改为接口C 和接口D,则获取到的基于portobuf源码重新编译后,自动生成的原始protobuf 类中,此时包括原始protobuf类中接口C和接口D,此时如果本地portobuf 类仍然通过原始protobuf类调用接口A和接口B,则会出现问题,此时需要将本地portobuf类原本调用接口A和接口B的信息修改为调用接口C和接口D的信息。
其中,根据所述变更信息对所述报错字段信息进行修改,包括:将所述报错字段信息替换为所述变更信息;或者,根据所述变更信息以及所述报错字段信息对所述报错字段信息所属的本地扩展对象进行修改。
示例性地,当protobuf源码中的信息只是将A改为C,将B改为D这种类型的信息变更时,只需要将根据所述报错字段信息在本地protobuf类中找到A、 B分别替换为C、D即可。
当所述portobuf源码中发生更改的信息需要改变本地扩展对象时,还可以对本地protobuf类中的变本地扩展对象进行修改。其中,所述报错字段信息所属的本地扩展对象包括执行时需要用到所述报错字段信息的所述本地扩展对象,也可以理解为,与所述报错字段信息存在逻辑关系或调用关系等有关联的本地扩展对象。
本实施例的技术方案,通过在portobuf源码中的信息发生更改时,获取基于portobuf源码编译后生成的protobuf类,使得在服务端信息发生更改时,本地端能够及时自动更新,节省了对基本业务的手动创建;进而,由于基于所述原始protobuf类创建了本地protobuf类,使得所述原始protobuf类不会覆盖本地protobuf类中所包含的本地扩展方法等,无需重新进行本地编码,节省了时间,而且,本地protobuf类中的本地扩展方法能够调用所述原始protobuf 类中的信息,根据portobuf源码中发生更改的信息对基于所述原始protobuf 类创建的本地protobuf类中执行查错操作并根据portobuf源码中发生更改的信息以及查错结果对所述本地protobuf类进行修改,使得本地扩展方法仍然能够顺利执行,解决了现有技术中由于重新生成protobuf类覆盖了原来的 protobuf类而导致的代码维护繁琐复杂且易出错等技术问题,使得本地端业务实现过程具有高兼容性、高容错率以及维护方便等特点,实现了portobuf的本地化处理。
实施例二
图2为本发明实施例二所提供的一种portobuf本地化的处理装置的结构示意图,如图2所示,本实施例中的portobuf本地化的处理装置包括原始protobuf 类生成模块210、本地protobuf类查错模块220和本地protobuf类修改模块 230。
其中,原始protobuf类生成模块210,用于当portobuf源码中的信息发生更改时,获取基于portobuf源码编译后生成的protobuf类;本地protobuf 类查错模块220,用于根据portobuf源码中发生更改的信息对基于所述原始 protobuf类创建的本地protobuf类中执行查错操作;本地protobuf类修改模块230,用于根据portobuf源码中发生更改的信息以及查错结果对所述本地 protobuf类进行修改,其中,所述本地protobuf类包括本地扩展方法,所述本地扩展方法调用所述原始protobuf类中的信息。
本实施例的技术方案,通过在portobuf源码中的信息发生更改时,获取基于portobuf源码编译后生成的protobuf类,使得在服务端信息发生更改时,本地端能够及时自动更新,节省了对基本业务的手动创建;进而,由于基于所述原始protobuf类创建了本地protobuf类,使得所述原始protobuf类不会覆盖本地protobuf类中所包含的本地扩展方法等,无需重新进行本地编码,节省了时间,而且,本地protobuf类中的本地扩展方法能够调用所述原始protobuf 类中的信息,根据portobuf源码中发生更改的信息对基于所述原始protobuf 类创建的本地protobuf类执行查错造作,并根据portobuf源码中发生更改的信息以及查错结果对所述本地protobuf类进行修改,使得本地扩展方法仍然能够顺利执行,解决了现有技术中由于重新生成protobuf类覆盖了原来的 protobuf类而导致的代码维护繁琐复杂且易出错等技术问题,使得本地端业务实现过程具有高兼容性、高容错率以及维护方便等特点,实现了portobuf的本地化处理。
在上述技术方案的基础上,所述portobuf源码中发生更改的信息为添加查询字段;所述本地protobuf类修改模块可用于:
在本地protobuf类中添加或者修改本地扩展对象,以使所述本地扩展对象包括原始查询字段以及所述添加的查询字段。
在上述各技术方案的基础上,所述portobuf源码中发生更改的信息为变更信息,所述变更信息可包括变更信息内容和/或变更信息类型;相应地,所述本地protobuf类修改模块可用于:
对基于所述原始protobuf类创建的本地protobuf类中与所述变更信息对应的调用信息进行修改。
在上述各技术方案的基础上,所述本地protobuf类查错模块,可用于基于调用报错提示信息查询并获取基于所述原始protobuf类创建的本地protobuf 类中与所述变更信息对应的报错字段信息;本地protobuf类修改模块,可用于根据所述变更信息对所述报错字段信息进行修改。
在上述各技术方案的基础上,所述本地protobuf类修改模块具体可用于:
将所述报错字段信息替换为所述变更信息;或者,
根据所述变更信息以及所述报错字段信息对所述报错字段信息所属的本地扩展对象进行修改。
在上述各技术方案的基础上,所述本地protobuf类查错模块还可用于:
获取基于所述原始protobuf类创建的本地protobuf类中与portobuf源码中发生更改的信息对应的原始信息,以及所述原始信息对应的中间转换信息;其中,所述原始信息赋值给所述中间转换信息;
相应地,所述本地protobuf类修改模块还可用于:
将所述原始信息替换为portobuf源码中发生更改的信息,赋值给所述中间转换信息。
在上述各技术方案的基础上,所述portobuf本地化的处理装置还包括:
创建模块,用于利用本地工具库基于所述原始protobuf类创建本地 protobuf类。
上述portobuf本地化的处理装置可执行本发明任意实施例所提供的 portobuf本地化的处理方法,具备执行portobuf本地化的处理方法相应的功能模块和有益效果。
实施例三
图3为本发明实施例三所提供的一种终端的结构示意图。图3示出了适于用来实现本发明实施方式的示例性终端312的框图。图3显示的终端312仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,终端312以通用计算设备的形式表现。终端312的组件可以包括但不限于:一个或者多个处理器或者处理器316,存储装置328,用于存储一个或多个程序,连接不同系统组件(包括存储装置328和处理器316)的总线 318。当所述一个或多个程序被所述一个或多个处理器316执行,使得所述一个或多个处理器316实现本发明任意实施例所述的电视数据自动更新的方法。
总线318表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构 (ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
终端312典型地包括多种计算机系统可读介质。这些介质可以是任何能够被终端312访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置328可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)330和/或高速缓存存储器332。终端312可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统334可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM, DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线318相连。存储器328可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块342的程序/实用工具340,可以存储在例如存储器328中,这样的程序模块342包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块342通常执行本发明所描述的实施例中的功能和/或方法。
终端312也可以与一个或多个外部设备314(例如键盘、指向设备、显示器324等)通信,还可与一个或者多个使得用户能与该终端312交互的设备通信,和/或与使得该终端312能与一个或多个其它计算设备进行通信的任何设备 (例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口322进行。并且,终端312还可以通过网络适配器320与一个或者多个网络 (例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器320通过总线318与终端312的其它模块通信。应当明白,尽管图中未示出,可以结合终端312使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器316通过运行存储在存储装置328中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的portobuf本地化的处理。
另外,本发明实施例还提供了一种包含计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种portobuf本地化的处理,该方法包括:
当portobuf源码中的信息发生更改时,获取基于portobuf源码编译后生成的原始protobuf类;
根据portobuf源码中发生更改的信息对基于所述原始protobuf类创建的所述本地protobuf类执行查错操作;
根据portobuf源码中发生更改的信息以及查错结果对所述本地protobuf 类进行修改,其中,所述本地protobuf类包括本地扩展方法,所述本地扩展方法调用所述原始protobuf类中的信息。
可选的,该计算机可执行指令在由计算机处理器执行时还可以用于执行本发明任意实施例所提供的portobuf本地化的处理的技术方案。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读存储介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA) 等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种portobuf本地化的处理方法,其特征在于,包括:
当portobuf源码中的信息发生更改时,获取基于portobuf源码编译后生成的原始protobuf类;
根据portobuf源码中发生更改的信息对基于所述原始protobuf类创建的本地protobuf类中执行查错操作;
根据portobuf源码中发生更改的信息以及查错结果对所述本地protobuf类进行修改;其中,所述本地protobuf类包括本地扩展方法,所述本地扩展方法调用所述原始protobuf类中的信息。
2.根据权利要求1所述的方法,其特征在于,所述portobuf源码中发生更改的信息为添加查询字段;
所述根据portobuf源码中发生更改的信息以及查错结果对所述本地protobuf类进行修改,包括:
在本地protobuf类中添加或者修改本地扩展对象,以使所述本地扩展对象包括原始查询字段以及所述添加的查询字段。
3.根据权利要求1所述的方法,其特征在于,所述portobuf源码中发生更改的信息为变更信息,所述变更信息包括变更信息内容和/或变更信息类型;
所述根据portobuf源码中发生更改的信息及查错结果对所述本地protobuf类进行修改,包括:
对所述本地protobuf类中与所述变更信息对应的调用信息进行修改。
4.根据权利要求3所述的方法,其特征在于,所述根据portobuf源码中发生更改的信息对基于所述原始protobuf类创建的本地protobuf类中执行查错操作,包括:
基于调用报错提示信息查询并获取所述本地protobuf类中与所述变更信息对应的报错字段信息;
所述对基于所述原始protobuf类创建的本地protobuf类中与所述变更信息对应的调用信息进行修改,包括:
根据所述变更信息对所述报错字段信息进行修改。
5.根据权利要求4所述的方法,其特征在于,所述根据所述变更信息对所述报错字段信息进行修改,包括:
将所述报错字段信息替换为所述变更信息;或者,
根据所述变更信息以及所述报错字段信息对所述报错字段信息所属的本地扩展对象进行修改。
6.根据权利要求3所述的方法,其特征在于,根据portobuf源码中发生更改的信息对所述本地protobuf类中执行查错操作,包括:
获取所述本地protobuf类中与portobuf源码中发生更改的信息对应的原始信息,以及所述原始信息对应的中间转换信息;其中,所述原始信息赋值给所述中间转换信息;
所述对所述本地protobuf类中与所述变更信息对应的调用信息进行修改,包括:
将所述原始信息替换为portobuf源码中发生更改的信息,赋值给所述中间转换信息。
7.根据权利要求1所述的方法,其特征在于,还包括:
利用本地工具库基于所述原始protobuf类创建本地protobuf类。
8.一种portobuf本地化的处理装置,其特征在于,包括:
原始protobuf类生成模块,用于当portobuf源码中的信息发生更改时,获取基于portobuf源码编译后生成的protobuf类;
本地protobuf类查错模块,用于根据portobuf源码中发生更改的信息对基于所述原始protobuf类创建的本地protobuf类中执行查错操作;
本地protobuf类修改模块,用于根据portobuf源码中发生更改的信息以及查错结果对所述本地protobuf类进行修改,其中,所述本地protobuf类包括本地扩展方法,所述本地扩展方法调用所述原始protobuf类中的信息。
9.一种终端,其特征在于,所述终端包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的portobuf本地化的处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的portobuf本地化的处理方法。
CN201811561652.7A 2018-12-20 2018-12-20 Portobuf本地化的处理方法、装置、终端及存储介质 Active CN109582318B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811561652.7A CN109582318B (zh) 2018-12-20 2018-12-20 Portobuf本地化的处理方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811561652.7A CN109582318B (zh) 2018-12-20 2018-12-20 Portobuf本地化的处理方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN109582318A true CN109582318A (zh) 2019-04-05
CN109582318B CN109582318B (zh) 2022-05-10

Family

ID=65930147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811561652.7A Active CN109582318B (zh) 2018-12-20 2018-12-20 Portobuf本地化的处理方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN109582318B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110633162A (zh) * 2019-09-23 2019-12-31 苏州达家迎信息技术有限公司 远程调用实现方法、装置、计算机设备及存储介质
CN112925768A (zh) * 2021-03-03 2021-06-08 北京中安星云软件技术有限公司 一种基于Protobuf协议的HBASE数据库解析方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970737A (zh) * 2013-01-24 2014-08-06 腾讯科技(深圳)有限公司 一种数据构造方法和装置
CN104199879A (zh) * 2014-08-21 2014-12-10 广州华多网络科技有限公司 一种数据处理方法和数据处理装置
CN105956046A (zh) * 2016-04-25 2016-09-21 广州神马移动信息科技有限公司 一种字典的更新方法、系统和服务器
US20170024194A1 (en) * 2015-07-22 2017-01-26 Oracle International Corporation Optimization techniques for high-level graph language compilers
CN108595200A (zh) * 2018-04-19 2018-09-28 北京微播视界科技有限公司 代码更新方法、图形更新方法、装置、存储介质和终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970737A (zh) * 2013-01-24 2014-08-06 腾讯科技(深圳)有限公司 一种数据构造方法和装置
CN104199879A (zh) * 2014-08-21 2014-12-10 广州华多网络科技有限公司 一种数据处理方法和数据处理装置
US20170024194A1 (en) * 2015-07-22 2017-01-26 Oracle International Corporation Optimization techniques for high-level graph language compilers
CN105956046A (zh) * 2016-04-25 2016-09-21 广州神马移动信息科技有限公司 一种字典的更新方法、系统和服务器
CN108595200A (zh) * 2018-04-19 2018-09-28 北京微播视界科技有限公司 代码更新方法、图形更新方法、装置、存储介质和终端

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110633162A (zh) * 2019-09-23 2019-12-31 苏州达家迎信息技术有限公司 远程调用实现方法、装置、计算机设备及存储介质
CN110633162B (zh) * 2019-09-23 2022-10-11 苏州达家迎信息技术有限公司 远程调用实现方法、装置、计算机设备及存储介质
CN112925768A (zh) * 2021-03-03 2021-06-08 北京中安星云软件技术有限公司 一种基于Protobuf协议的HBASE数据库解析方法及系统
CN112925768B (zh) * 2021-03-03 2024-02-27 北京中安星云软件技术有限公司 一种基于Protobuf协议的HBASE数据库解析方法及系统

Also Published As

Publication number Publication date
CN109582318B (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
US7055026B2 (en) Method and system for a portable adaptable operating environment identity
US8261248B2 (en) System and method of executing a dynamic program in a structured environment
CN104468226A (zh) 基于Nginx的配置方法及装置
CN110941456B (zh) 按需加载动态脚本语言代码以减少内存使用
CN103853535B (zh) 修改中间件的方法和装置
CN102306122A (zh) 自动化测试方法及设备
US20190138438A1 (en) Conditional stack frame allocation
CN109582318A (zh) Portobuf本地化的处理方法、装置、终端及存储介质
CN109446202A (zh) 标识符分配方法、装置、服务器和存储介质
JP2020503597A (ja) シブリング・コール処理のためのコンピュータ・プログラム製品、コンピュータ・システムおよびコンピュータによって実施される方法
CN112114933A (zh) 应用程序保护方法、电子设备和存储介质
US20090125895A1 (en) Re-Using Legacy Libraries in Software
EP2977897A1 (en) Compatibility method and apparatus
CN105373414B (zh) 支持MIPS平台的Java虚拟机实现方法及装置
CN110147226A (zh) 一种根据功能块图自动生成程序的系统、方法及装置
CN111414226A (zh) 一种任务沙箱的建立方法和系统
CN109062973A (zh) 一种问答资源的挖掘方法、装置、服务器及存储介质
US9760282B2 (en) Assigning home memory addresses to function call parameters
CN106815003A (zh) 一种计算机语言的交互系统及交互方法
US7617089B2 (en) Method and apparatus for compiling two-level morphology rules
CN113722045B (zh) 集群的应用部署方法和装置
Sun et al. Design and Implementation of English Online Translation Cloud Platform
KR20160004101A (ko) 빅데이터 스토리지 어댑터 시스템
CN117992529A (zh) 用于动态展示来自数据仓库的制造操作数据的方法和系统
CN104461490A (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