static void handle_command(const char *cmd, int *done) { if (0 == strcmp("bye", cmd)) { *done = 1; } if (0 == strcmp("help", cmd)) { help(); } else if (0 == strncmp("name ", cmd, 5)) { update_participant(&cmd[5], _me.state); } else if (0 == strncmp("state ", cmd, 6)) { qeo_enum_value_t state; /* convert enumerator name to its corresponding value */ if (QEO_OK != qeo_enum_string_to_value(org_qeo_sample_simplechat_ChatState_type, &cmd[6], &state)) { printf("error - invalid state '%s'\n", &cmd[6]); } else { update_participant(NULL, state); } } else if (0 == strcmp("participants", cmd)) { printf("Participant list:\n"); qeo_state_reader_foreach(_part_reader, print_participant, 0); } }
int count_instances(qeo_state_reader_t *reader) { int cnt = 0; assert(QEO_OK == qeo_state_reader_foreach(reader, count_instances_callback, (uintptr_t)&cnt)); return cnt; }
static void on_update(const qeo_state_reader_t *reader, uintptr_t userdata) { log_verbose("[PID %d] on_update", _pid); assert(QEO_OK == qeo_state_reader_foreach(reader, count_instances_callback, userdata)); }