Thrift IDL 中的列表语法

list syntax in Thrift IDL

这个声明 TAO IDL 有 Thrift 语法吗?

typedef sequence< SomeClass, 31 > SomeSeq;

表示SomeClass最多出现31次。我正在使用 C++ 中的 Thrift。

简短回答:否

在 IDL 级别没有可能的限制。如果您需要这样的功能,推荐的方法是在业务逻辑中或在您的体系结构中有意义的其他任何地方处理它。

另一种但相当麻烦的方法是

struct cumbersome {
  1: optional SomeClass elm0
  2: optional SomeClass elm1
  3: optional SomeClass elm2
  // ... some more elements omitted ...
  28: optional SomeClass elm29
  29: optional SomeClass elm30
  30: optional SomeClass elm31
}

我真的不能推荐这个,它甚至不再是一个 list<> 构造,但从技术上讲它可以解决限制元素数量的任务。