【问题标题】:How to get extension type from proto buf UDP data stream如何从 proto buf UDP 数据流中获取扩展类型
【发布时间】:2016-04-22 00:48:10
【问题描述】:

我正在使用支持扩展的 java 和 proto buf 读取 UDP 流。

在任何给定时间,我都可以获得三种不同类型的数据,它们对应于三种不同类型的 proto 文件。

我正在使用

            registry.add(CpuUtilization.cpuUtilExt);
            registry.add(NpuUtilization.npuExt);
            registry.add(Optics.opticsExt);

所有三个 proto 文件都使用下面提到的扩展语法

 extend NetworksSensors {
        optional PFEHeapInfo pfeHeapInfoExt = 1;
    }
    extend NetworksSensors {
        optional NpuUtilization npuExt = 2;
    }
    extend NetworksSensors {
        optional CpuUtilization cpuUtilExt = 3;
    }

我正在做的是创建三个单独的方法,并根据标题字段中的值处理每种类型传感器的数据。

有没有一种方法可以让我根据即将到来的扩展数据来决定调用哪个方法?

可能是描述符中的某些字段可以提供帮助,但我不知道如何使用它。有什么想法吗?

【问题讨论】:

    标签: java proto


    【解决方案1】:

    我找到了一种方法来检查数据中是否有特定的扩展名,但仍然需要弄清楚如何从 networksSensors 对象中获取 Extension 对象。

    networksSensors.hasExtension(FirewallClass.firewallExt)

    FirewallClass 类是使用 protoc 编译器自动生成的类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 2013-05-28
      • 2023-03-08
      • 2020-08-03
      • 2011-07-29
      • 2018-10-10
      相关资源
      最近更新 更多