Sample C/C++ code for the handleData method.
EspMessageReader * reader = esp_subscriber_event_get_reader(event, error);
EspStream * stream = esp_message_reader_get_stream(reader, error);
const EspSchema * schema = esp_stream_get_schema(stream, error);
EspRowReader * row_reader;
int32_t int_value; int64_t long_value; time_t date_value; double double_value;
int numcolumns, numrows, type;
rc = esp_schema_get_numcolumns(schema, &numcolumns, error);
while ((row_reader = esp_message_reader_next_row(reader, error)) != NULL) {
for (int i = 0; i < numcolumns; ++i) {
rc = esp_schema_get_column_type(schema, i, &type, error);
switch(type){
case ESP_DATATYPE_INTEGER:
rc = esp_row_reader_get_integer(row_reader, i, &int_value, error);
break;
case ESP_DATATYPE_LONG:
rc = esp_row_reader_get_long(row_reader, i, &long_value, error);
break;
case ESP_DATATYPE_DATE:
rc = esp_row_reader_get_date(row_reader, i, &date_value, error);
break;
}
}