static int drange_to_string_convert(struct sol_flow_node *node, void *data, uint16_t port, uint16_t conn_id, const struct sol_flow_packet *packet) { int r; struct sol_drange in_value; struct string_converter *mdata = data; struct sol_buffer out = SOL_BUFFER_INIT_EMPTY; mdata->node = node; r = sol_flow_packet_get_drange(packet, &in_value); SOL_INT_CHECK(r, < 0, r); r = do_float_markup(node, mdata->format, in_value, &out); SOL_INT_CHECK_GOTO(r, < 0, end); r = sol_flow_send_string_slice_packet(node, SOL_FLOW_NODE_TYPE_FORMAT_FLOAT_TO_STRING__OUT__OUT, sol_buffer_get_slice(&out)); end: sol_buffer_fini(&out); return r; }
static bool timer_tick(void *data) { struct sol_flow_node *node = data; struct string_generator_data *mdata = sol_flow_node_get_private_data(node); struct sol_str_slice *val; val = sol_vector_get(&mdata->values, mdata->next_index); sol_flow_send_string_slice_packet (node, SOL_FLOW_NODE_TYPE_TEST_STRING_GENERATOR__OUT__OUT, *val); mdata->next_index++; return mdata->next_index != mdata->values.len; }
static int send_regexp_substring(struct string_regexp_search_data *mdata) { struct sol_str_slice *sub_slice; int len; len = mdata->substrings.len; if (!len) return 0; if (mdata->index >= len) { SOL_WRN("Index (%d) greater than substrings " "length (%d).", mdata->index, len); return -EINVAL; } sub_slice = sol_vector_get(&mdata->substrings, mdata->index); return sol_flow_send_string_slice_packet(mdata->node, SOL_FLOW_NODE_TYPE_STRING_REGEXP_SEARCH__OUT__OUT, *sub_slice); }