2016-04-22 12 views
0

拡張をサポートするjavaおよびproto bufを使用してUDPストリームを読み込んでいます。proto buf UDPデータストリームから拡張タイプを取得する方法

いつでも私は3種類のプロトタイプファイルに対応する3種類のデータを得ることができます。私は3つのプロトファイルのすべては、私がやっている何を延長

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

ために言及構文の下に使用している

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

を使用しています

は、3つの別々のメソッドを作成し、各タイプのデータを処理していますセンサーは、ヘッダーフィールド内の値に基づいています。

来る拡張データに基づいてどのメソッドを呼び出すかを決める方法はありますか?

ディスクリプタからのフィールドがある場合もありますが、それを使用することはわかりません。何か案が?

答えて

0

データに特定の拡張子があるかどうかを確認する方法を見つけましたが、それでもnetworksSensorsオブジェクトからExtensionオブジェクトを取得する方法を把握する必要があります。

networksSensors.hasExtension(FirewallClass.firewallExt)

FirewallClassクラスはprotocコンパイラを使用して自動生成されたクラスです。

関連する問題