将平面缓冲区数据添加到更大的包含平面缓冲区类型的Union字段

时间:2019-12-10 05:54:01

标签: c++ flatbuffers

我正在尝试将数据插入Union类型的flatbuffer字段中。但是,这些数据以序列化的形式到达了我,所以我确实对其进行了反序列化。将其添加到Union字段并创建flatbuffer后,我尝试将其解析为JSON。结果不反映添加到“联合”字段中的数据。

下面是我的.fbs-

    namespace Event;

    enum ErrorCategory : short
    {
        _undefined_ = -1,
        firmwareAssert,
        hardwareFailure
    }

    table FirmwareAssert
    {
        code : string (required);
        file : string;
        version : string (required);
        line : double;
        type : string;
    }

    table SystemError
    {
        errorCategory : ErrorCategory = _undefined_;
        firmwareAssert : FirmwareAssert;
    }
     union EventDetail
    {
        SystemError
    }

    table Event
    {
        eventCategory : string (required);
        sequenceNumber : uint32; 
        eventDetail : EventDetail;
    }

    root_type Event;

我尝试创建一个EventDetailUnion()并将类型和反序列化的缓冲区添加到它的值中,接着是EventDetailUnion :: Pack()和CreateEvent。是否应该有其他方法可以将数据添加到“联合字段”?

0 个答案:

没有答案