[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