00001 /* -*- Mode: objc; c-basic-offset: 2; tab-width: 2 indent-tabs-mode: nil -*- */ 00002 /* vim: set filetype=objc ts=2 sw=2 expandtab: */ 00003 00004 00005 /* 00006 * Copyright (C) 2007 Neil Dantam 00007 * 00008 * This program is free software: you can redistribute it and/or modify it 00009 * under the terms of the GNU General Public License, verson 3 ONLY, as 00010 * published by the Free Software Foundation. 00011 * 00012 * This program is distributed in the hope that it will be useful, but WITHOUT 00013 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 00015 * more details. 00016 * 00017 * You should have received a copy of the GNU General Public License along with 00018 * this program. If not, see <http://www.gnu.org/licenses/>. 00019 * 00020 */ 00021 00022 #ifndef _QUEUE_H_ 00023 #define _QUEUE_H_ 00024 00025 #include "cons.h" 00026 00027 @interface Queue: Object { 00028 Cons *head; 00029 Cons *tail; 00030 } 00033 -(Queue*) init: (id) o; 00034 00037 -(Queue*) init; 00038 00041 -(Cons*) list; 00042 00045 -(Cons*) unwrap; 00046 00049 -(void) enqueue: (id) o; 00050 00055 -(id) dequeue; 00056 00057 @end 00058 00059 #endif