Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

cq.h

Go to the documentation of this file.
00001 /*
00002  * $Id: cq.h 13015 2007-03-08 19:07:02Z cbiere $
00003  *
00004  * Copyright (c) 2002-2003, Raphael Manfredi
00005  *
00006  *----------------------------------------------------------------------
00007  * This file is part of gtk-gnutella.
00008  *
00009  *  gtk-gnutella is free software; you can redistribute it and/or modify
00010  *  it under the terms of the GNU General Public License as published by
00011  *  the Free Software Foundation; either version 2 of the License, or
00012  *  (at your option) any later version.
00013  *
00014  *  gtk-gnutella is distributed in the hope that it will be useful,
00015  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017  *  GNU General Public License for more details.
00018  *
00019  *  You should have received a copy of the GNU General Public License
00020  *  along with gtk-gnutella; if not, write to the Free Software
00021  *  Foundation, Inc.:
00022  *      59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00023  *----------------------------------------------------------------------
00024  */
00025 
00036 #ifndef _cq_h_
00037 #define _cq_h_
00038 
00039 #include "common.h" 
00040 
00041 struct cqueue;
00042 typedef struct cqueue cqueue_t;
00043 
00044 struct cevent;
00045 typedef struct cevent cevent_t;
00046 
00047 typedef void (*cq_service_t)(struct cqueue *cq, gpointer udata);
00048 
00049 typedef guint64 cq_time_t;      
00051 /*
00052  * Interface routines.
00053  */
00054 
00055 extern cqueue_t *callout_queue; /* Single global instance */
00056 
00057 gdouble callout_queue_coverage(gint old_ticks);
00058 
00059 void cq_init(void);
00060 void cq_close(void);
00061 
00062 cqueue_t *cq_make(cq_time_t now);
00063 void cq_free(cqueue_t *cq);
00064 cevent_t *cq_insert(cqueue_t *cq, gint delay, cq_service_t fn, gpointer arg);
00065 void cq_expire(cqueue_t *cq, cevent_t *ev);
00066 void cq_cancel(cqueue_t *cq, cevent_t **handle_ptr);
00067 void cq_resched(cqueue_t *cq, cevent_t *handle, gint delay);
00068 void cq_clock(cqueue_t *cq, gint elapsed);
00069 gint cq_ticks(cqueue_t *cq);
00070 
00071 #endif  /* _cq_h_ */
00072 
00073 /* vi: set ts=4: */

Generated on Sat Jun 30 17:53:22 2007 for gtk-gnutella by  doxygen 1.3.9.1