GFC Logo GFC Title Logo
Reference Manual
Main Page  |  Namespace List  |  Alphabetical List  |  Class List  |  File List

asyncqueue.hh

Go to the documentation of this file.
00001 /* GFC-Core: GTK+ Foundation Classes (Core Library) 00002 * Copyright (C) 2003-2004 The GFC Development Team. 00003 * 00004 * This program is free software; you can redistribute it and/or modify 00005 * it under the terms of the GNU General Public License as published by 00006 * the Free Software Foundation; either version 2 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU Library General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Library General Public License 00015 * along with this program; if not, write to the Free Software 00016 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 */ 00018 00023 00024 #ifndef GFC_G_ASYNCQUEUE_HH 00025 #define GFC_G_ASYNCQUEUE_HH 00026 00027 #ifndef GFC_OBJECT_HH 00028 #include <gfc/object.hh> 00029 #endif 00030 00031 #ifndef __G_ASYNCQUEUE_H__ 00032 #include <glib/gasyncqueue.h> 00033 #endif 00034 00035 namespace GFC { 00036 00037 namespace G { 00038 00039 class TimeVal; 00040 00088 00089 class AsyncQueue : public GFC::Object 00090 { 00091 AsyncQueue(const AsyncQueue&); 00092 AsyncQueue& operator=(const AsyncQueue&); 00093 00094 GAsyncQueue *queue_; 00095 bool locked_; 00096 00097 public: 00100 00101 AsyncQueue(); 00103 00104 virtual ~AsyncQueue(); 00106 00110 00111 GAsyncQueue* g_async_queue() const; 00113 00114 int length() const; 00123 00127 00128 virtual void ref(); 00130 00131 virtual void unref(); 00134 00135 void lock(); 00139 00140 void unlock(); 00144 00145 void push(void *data); 00148 00149 void* pop(); 00154 00155 void* try_pop(); 00158 00159 void* timed_pop(TimeVal *end_time); 00166 00168 }; 00169 00170 } // namespace G 00171 00172 } // namespace GFC 00173 00174 #include <gfc/glib/inline/asyncqueue.inl> 00175 00176 #endif // GFC_G_ASYNCQUEUE_HH 00177

Generated on Tue Aug 24 00:04:56 2004 for GFC-Core by doxygen 1.3.8