Я пытаюсь сериализовать данные, используя реализацию C.(Упрощенная) схема выглядит следующим образом:
[{
"type" : "record",
"name" : "Global",
"fields" : [
{
"name" : "source",
"type" : "string"
},
{
"name" : "timestamp",
"type" : "long"
}]
},
{
"type" : "record",
"name" : "seb_sup",
"fields" : [
{
"name" : "global",
"type" : "Global"
}
]
}]
Я не нахожу правильный способ использования C API.Я пробовал что-то вроде этого:
avro_schema_t sch_seb_sup = avro_schema_get_subschema (sch_schema, "seb_sup");
check_p (iface = avro_generic_class_from_schema (sch_seb_sup));
avro_value_t seb_sup;
check_i (avro_generic_value_new (iface, &seb_sup));
// populate the global part
avro_value_t global;
check_i (avro_value_get_by_name (&seb_sup, "global", &global, NULL));
check_i (avro_value_get_by_name (&global, "source", &field, NULL));
check_i (avro_value_set_string (&field, "seb"));
check_i (avro_value_get_by_name (&global, "timestamp", &field, NULL));
check_i (avro_value_set_long (&field, 12345678));
check_i (avro_file_writer_append_value (db, &seb_sup));
, но выполнение показывает ошибку: Ошибка: Никогда не создавал реализацию значения для Global
Как мне использовать C API?
С уважением, Арно