1 /* This file is part of the YAZ toolkit.
2 * Copyright (C) 1995-2011 Index Data
3 * See the file LICENSE for details.
7 * \brief Implements ZOOM Event stuff
18 ZOOM_API(const char *) ZOOM_get_event_str(int event)
20 static const char *ar[] = {
42 ZOOM_Event ZOOM_Event_create(int kind)
44 ZOOM_Event event = (ZOOM_Event) xmalloc(sizeof(*event));
52 ZOOM_Event ZOOM_connection_get_event(ZOOM_connection c)
54 ZOOM_Event event = c->m_queue_front;
57 c->last_event = ZOOM_EVENT_NONE;
60 assert(c->m_queue_back);
61 c->m_queue_front = event->prev;
64 assert(c->m_queue_back);
65 c->m_queue_front->next = 0;
69 c->last_event = event->kind;
73 void ZOOM_connection_put_event(ZOOM_connection c, ZOOM_Event event)
77 c->m_queue_back->prev = event;
78 assert(c->m_queue_front);
82 assert(!c->m_queue_front);
83 c->m_queue_front = event;
85 event->next = c->m_queue_back;
87 c->m_queue_back = event;
90 void ZOOM_Event_destroy(ZOOM_Event event)
95 void ZOOM_connection_remove_events(ZOOM_connection c)
98 while ((event = ZOOM_connection_get_event(c)))
99 ZOOM_Event_destroy(event);
102 ZOOM_API(int) ZOOM_connection_peek_event(ZOOM_connection c)
104 ZOOM_Event event = c->m_queue_front;
106 return event ? event->kind : ZOOM_EVENT_NONE;
113 * c-file-style: "Stroustrup"
114 * indent-tabs-mode: nil
116 * vim: shiftwidth=4 tabstop=8 expandtab