[Scummvm-cvs-logs] SF.net SVN: scummvm:[34237] scummvm/trunk/common

Johannes Schickel lordhoto at gmail.com
Mon Sep 1 13:24:23 CEST 2008


On Monday 01 September 2008 12:54:07 fingolfin at users.sourceforge.net wrote:
> Revision: 34237
>           http://scummvm.svn.sourceforge.net/scummvm/?rev=34237&view=rev
> Author:   fingolfin
> Date:     2008-09-01 10:54:03 +0000 (Mon, 01 Sep 2008)
>
> Log Message:
> -----------
> New Queue class, from RTL branch

Makes me wonder why we return a copy of the elements when calling front/back 
instead of a reference?

Also I would change 'pop' to return no value at all like it's done in 
std::queue.

// Johannes

> Copied: scummvm/trunk/common/queue.h (from rev 33049,
> scummvm/branches/gsoc2008-rtl/common/queue.h)
> =================================================================== ---
> scummvm/trunk/common/queue.h	                        (rev 0)
> +++ scummvm/trunk/common/queue.h	2008-09-01 10:54:03 UTC (rev 34237)
> @@ -0,0 +1,71 @@
> +/* ScummVM - Graphic Adventure Engine
> + *
> + * ScummVM is the legal property of its developers, whose names
> + * are too numerous to list here. Please refer to the COPYRIGHT
> + * file distributed with this source distribution.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * as published by the Free Software Foundation; either version 2
> + * of the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
> 02110-1301, USA. + *
> + * $URL:
> https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/branches/gsoc20
>08-rtl/common/stack.h $ + * $Id$
> + */
> +
> +#ifndef COMMON_QUEUE_H
> +#define COMMON_QUEUE_H
> +
> +#include "common/scummsys.h"
> +#include "common/list.h"
> +
> +namespace Common {
> +
> +/**
> + * Variable size Queue class, implemented using our List class.
> + */
> +template<class T>
> +class Queue {
> +protected:
> +	List<T>		_queue;
> +public:
> +	Queue<T>() {}
> +	Queue<T>(const List<T> &queueContent) : _queue(queueContent) {}
> +
> +	bool empty() const {
> +		return _queue.empty();
> +	}
> +	void clear() {
> +		_queue.clear();
> +	}
> +	void push(const T &x) {
> +		_queue.push_back(x);
> +	}
> +	T back() const {
> +		return _queue.reverse_begin().operator*();
> +	}
> +	T front() const {
> +		return _queue.begin().operator*();
> +	}
> +	T pop() {
> +		T tmp = front();
> +		_queue.pop_front();
> +		return tmp;
> +	}
> +	int size() const {
> +		return _queue.size();
> +	}
> +};
> +
> +} // End of namespace Common
> +
> +#endif







More information about the Scummvm-git-logs mailing list