Message 类说明
当API接收到 DolphinDB 发送的消息时,会封装为一个 Message 类,用户可以解析该类以获取具体数据。
Message 是 ConstantSP 的子类,因此从 Message 中读取数据的方法与从 ConstantSP 中读数据的方法相同,具体可参考数据类型与形式。
在订阅时,如果指定 MsgAsTable 为 false,那么每个 Message 是一个 ANY 类型的 VECTOR,长度与表的列数相同,表示一行数据;如果指定 MsgAsTable 为 true,那么每个Message 是一个 Table.
注意:在订阅异构流表时,如果表中某一列是 ArrayVector,那么在回调函数的参数 Message 中,该列对应的元素也是一个 ArrayVector,长度为 1。如果订阅的是普通流表,表中某一列是 ArrayVector,则在回调参数 Message 中,该列对应的元素是一个 Vector。
此外,Message还提供了独有的两个方法如下所示:
获取 symbol
const std::string& getSymbol();
在订阅异构流表时使用,可以通过该 symbol 知道该条消息属于哪个表。
获取 offset
int getOffset();
可以通过该知道该条消息在表中的偏移量(从0开始)。
Note:
只有在订阅时没有指定filter时,该接口才是可用的。如果指定了filter,该接口返回的内容无意义。