Интеграция макросов Qt в вывод cpp flatbuffer - PullRequest
1 голос
/ 07 октября 2019

Я использую flatbuffers с C ++, и он генерирует мои классы, перечисления и т. Д. Но я хотел бы использовать их в моем QML GUI. Что означает, что мне нужны макросы типа QObject и QT_NAMESPACE, Q_ENUM.

Как бы вы решили эту проблему? Я имею в виду:

  • Написание собственного генератора плоских буферов для моего "собственного" языка.
  • Написание классов-оберток вокруг класса и магию с QObject.
  • Я попытался переопределить перечисление в другом файле, но Qt, похоже, не подобрал это.
  • Разбор кода после того, как flatc.exe сделан и замена определенных ключевых слов ...: (

Пример вывода плоского буфера:

// automatically generated by the FlatBuffers compiler, do not modify


#ifndef FLATBUFFERS_GENERATED_COMMON_OCS_N_COMMON_N_H_
#define FLATBUFFERS_GENERATED_COMMON_OCS_N_COMMON_N_H_

#include "flatbuffers/flatbuffers.h"

namespace ocs_n {
namespace common_n {

enum controlState_e {
  controlState_e_local = 0,
  controlState_e_released = 1,
  controlState_e_service = 2,
  controlState_e_operational = 3,
  controlState_e_MIN = controlState_e_local,
  controlState_e_MAX = controlState_e_operational
};

}
}
...