1 /* This file is part of the YAZ toolkit.
2 * Copyright (C) 1995-2010 Index Data
3 * See the file LICENSE for details.
7 * \brief Implements ZOOM Event stuff
15 ZOOM_API(const char *) ZOOM_get_event_str(int event)
17 static const char *ar[] = {
39 ZOOM_Event ZOOM_Event_create(int kind)
41 ZOOM_Event event = (ZOOM_Event) xmalloc(sizeof(*event));
49 ZOOM_Event ZOOM_connection_get_event(ZOOM_connection c)
51 ZOOM_Event event = c->m_queue_front;
54 c->last_event = ZOOM_EVENT_NONE;
57 assert(c->m_queue_back);
58 c->m_queue_front = event->prev;
61 assert(c->m_queue_back);
62 c->m_queue_front->next = 0;
66 c->last_event = event->kind;
70 void ZOOM_connection_put_event(ZOOM_connection c, ZOOM_Event event)
74 c->m_queue_back->prev = event;
75 assert(c->m_queue_front);
79 assert(!c->m_queue_front);
80 c->m_queue_front = event;
82 event->next = c->m_queue_back;
84 c->m_queue_back = event;
87 void ZOOM_Event_destroy(ZOOM_Event event)
92 void ZOOM_connection_remove_events(ZOOM_connection c)
95 while ((event = ZOOM_connection_get_event(c)))
96 ZOOM_Event_destroy(event);
99 ZOOM_API(int) ZOOM_connection_peek_event(ZOOM_connection c)
101 ZOOM_Event event = c->m_queue_front;
103 return event ? event->kind : ZOOM_EVENT_NONE;
110 * c-file-style: "Stroustrup"
111 * indent-tabs-mode: nil
113 * vim: shiftwidth=4 tabstop=8 expandtab