void sml_get_profile_pack_response_write(sml_get_profile_pack_response *msg, sml_buffer *buf) { sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 8); sml_octet_string_write(msg->server_id, buf); sml_time_write(msg->act_time, buf); sml_u32_write(msg->reg_period, buf); sml_tree_path_write(msg->parameter_tree_path, buf); sml_sequence_write(msg->header_list, buf, sml_prof_obj_header_entry_write_); sml_sequence_write(msg->period_list, buf, sml_prof_obj_period_entry_write_); sml_octet_string_write(msg->rawdata, buf); sml_signature_write(msg->profile_signature, buf); }
TEST(sml_sequence, write_octet_string) { sml_sequence *seq = sml_sequence_init((void (*)(void *))&sml_octet_string_free); sml_sequence_add(seq, sml_octet_string_init((unsigned char *)"Hallo", 5)); sml_sequence_add(seq, sml_octet_string_init((unsigned char *)"Hallo", 5)); sml_sequence_write(seq, buf, (void (*)(void *, sml_buffer *))&sml_octet_string_write); expected_buf(buf, "720648616C6C6F0648616C6C6F", 13); }
static void sml_prof_obj_period_entry_write_( void * p, sml_buffer *buf) { sml_prof_obj_period_entry * entry = p; sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 4); sml_time_write(entry->val_time, buf); sml_u64_write(entry->status, buf); sml_sequence_write(entry->value_list, buf, sml_value_entry_write_); sml_signature_write(entry->period_signature, buf); }