00001 /* 00002 * Copyright (C) 2009, Edmundo Albuquerque de Souza e Silva. 00003 * 00004 * This file may be distributed under the terms of the Q Public License 00005 * as defined by Trolltech AS of Norway and appearing in the file 00006 * LICENSE.QPL included in the packaging of this file. 00007 * 00008 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING 00009 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00010 * PURPOSE. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, 00011 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 00012 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 00013 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 00014 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 00015 * 00016 */ 00017 00018 #ifndef __TQUEUE_H__ 00019 #define __TQUEUE_H__ 00020 00021 #include <stdlib.h> 00022 00023 class TQueue 00024 { 00025 private: 00026 class ListNode 00027 { 00028 private: 00029 void * data; 00030 ListNode * next; 00031 public: 00032 ListNode( void *, ListNode * ); 00033 ~ListNode( void ); 00034 inline void SetNext( ListNode * ); 00035 inline ListNode * GetNext( void ) const; 00036 inline void * GetData( void ) const; 00037 }; 00038 00039 int size; 00040 ListNode * head, * tail; 00041 public: 00042 TQueue( ); 00043 ~TQueue( ); 00044 00045 void Add( void * ); 00046 void * Remove( void ); 00047 00048 void * GetFirst( void ) const; 00049 int GetSize( void ) const; 00050 }; 00051 00052 #endif /* __TQUEUE_H__ */