58#define SPECHASH_TAG update_queue
59#define SPECHASH_IKEY_TYPE uq_callback_t
60#define SPECHASH_IDATA_TYPE struct update_queue_data *
61#define SPECHASH_IDATA_FREE update_queue_data_destroy
63#define update_queue_hash_iterate(hash, callback, uq_data) \
64 TYPED_HASH_ITERATE(uq_callback_t, const struct update_queue_data *, \
65 hash, callback, uq_data)
66#define update_queue_hash_iterate_end HASH_ITERATE_END
77#define SPECLIST_TAG waiting_queue
78#define SPECLIST_TYPE struct waiting_queue_data
80#define waiting_queue_list_iterate(list, data) \
81 TYPED_LIST_ITERATE(struct waiting_queue_data, list, data)
82#define waiting_queue_list_iterate_end LIST_ITERATE_END
85#define SPECHASH_TAG waiting_queue
86#define SPECHASH_INT_KEY_TYPE
87#define SPECHASH_IDATA_TYPE struct waiting_queue_list *
88#define SPECHASH_IDATA_FREE waiting_queue_list_destroy
234 log_error(
"update_queue_frozen_level < 0, repairing...");
583#define NEED_UPDATE(city_update, action) \
584 if (city_update & need_update) { \
586 need_update &= ~city_update; \
589#define NEED_UPDATE(city_update, action) \
590 if (city_update & need_update) { \
611 log_error(
"Some city updates not handled "
612 "for city %s (id %d): %d left.",
const char * city_name_get(const struct city *pcity)
#define cities_iterate_end
#define cities_iterate(pcity)
static struct fc_sockaddr_list * list
bool client_start_server(void)
bool has_zoom_support(void)
void real_city_dialog_popup(struct city *pcity)
void real_city_dialog_refresh(struct city *pcity)
void real_city_report_dialog_update(void *unused)
void real_city_report_update_city(struct city *pcity)
void unit_select_dialog_update_real(void *unused)
void real_multipliers_dialog_update(void *unused)
void add_idle_callback(void(callback)(void *), void *data)
enum client_pages get_current_client_page(void)
void real_set_client_page(enum client_pages new_page)
void real_conn_list_dialog_update(void *unused)
void real_players_dialog_update(void *unused)
void real_units_report_dialog_update(void *unused)
void real_economy_report_dialog_update(void *unused)
void real_science_report_dialog_update(void *unused)
#define fc_assert_ret(condition)
#define fc_assert(condition)
#define log_debug(message,...)
#define log_error(message,...)
struct client_options gui_options
enum city_updates need_updates
struct city::@17::@20 client
struct connection::@58::@63 client
uq_free_fn_t free_data_func
struct update_queue_data * uq_data
bool tileset_is_fully_loaded(void)
#define waiting_queue_list_iterate(list, data)
static void waiting_queue_add_pending_request(struct waiting_queue_hash *hash, int request_id, uq_callback_t callback, void *data, uq_free_fn_t free_data_func)
bool update_queue_is_switching_page(void)
void update_queue_free(void)
void client_start_server_and_set_page(enum client_pages page)
static struct update_queue_data * waiting_queue_data_extract(struct waiting_queue_data *wq_data)
void conn_list_dialog_update(void)
bool update_queue_is_frozen(void)
void economy_report_dialog_update(void)
void set_client_page(enum client_pages page)
void multipliers_dialog_update(void)
static void update_queue_push(uq_callback_t callback, struct update_queue_data *uq_data)
#define update_queue_hash_iterate(hash, callback, uq_data)
void update_queue_connect_processing_finished_full(int request_id, uq_callback_t callback, void *data, uq_free_fn_t free_data_func)
void update_queue_add_full(uq_callback_t callback, void *data, uq_free_fn_t free_data_func)
void city_report_dialog_update_city(struct city *pcity)
void update_queue_connect_processing_started(int request_id, uq_callback_t callback, void *data)
static struct update_queue_hash * update_queue
static struct waiting_queue_hash * processing_finished_waiting_queue
void science_report_dialog_update(void)
void update_queue_thaw(void)
static void waiting_queue_data_destroy(struct waiting_queue_data *wq_data)
void update_queue_init(void)
static struct update_queue_data * update_queue_data_new(void *data, uq_free_fn_t free_data_func)
void popup_city_dialog(struct city *pcity)
bool update_queue_has_callback_full(uq_callback_t callback, const void **data, uq_free_fn_t *free_data_func)
static void update_unqueue(void *data)
static void set_client_page_callback(void *data)
static void cities_update_callback(void *data)
void refresh_city_dialog(struct city *pcity)
void update_queue_freeze(void)
void update_queue_force_thaw(void)
void update_queue_connect_processing_started_full(int request_id, uq_callback_t callback, void *data, uq_free_fn_t free_data_func)
void update_queue_processing_finished(int request_id)
static struct waiting_queue_hash * processing_started_waiting_queue
static void update_queue_data_destroy(struct update_queue_data *pdata)
static bool update_queue_has_idle_callback
void units_report_dialog_update(void)
void update_queue_connect_processing_finished(int request_id, uq_callback_t callback, void *data)
void update_queue_add(uq_callback_t callback, void *data)
void players_dialog_update(void)
static struct waiting_queue_data * waiting_queue_data_new(uq_callback_t callback, void *data, uq_free_fn_t free_data_func)
#define NEED_UPDATE(city_update, action)
void update_queue_processing_started(int request_id)
static void menus_update_callback(void *data)
void city_report_dialog_update(void)
static int update_queue_frozen_level
bool update_queue_has_callback(uq_callback_t callback)
#define waiting_queue_list_iterate_end
static void waiting_queue_execute_pending_requests(struct waiting_queue_hash *hash, int request_id)
enum client_pages get_client_page(void)
void unit_select_dialog_update(void)
#define update_queue_hash_iterate_end
void(* uq_free_fn_t)(void *data)
void(* uq_callback_t)(void *data)
void zoom_set(float new_zoom)