PathTable.hpp
/* This file is part of Raul.
* Copyright (C) 2007-2009 David Robillard <http://drobilla.net>
*
* Raul 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.
*
* Raul 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 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 St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef RAUL_PATH_TABLE_HPP
#define RAUL_PATH_TABLE_HPP
#include "raul/Path.hpp"
#include "raul/Table.hpp"
namespace Raul {
template <typename T>
class PathTable : public Table<Path, T> {
public:
typename Table<Path, T>::iterator find_descendants_end(
typename Table<Path, T>::iterator parent)
{
return find_range_end(parent, &Path::descendant_comparator);
}
typename Table<Path, T>::const_iterator find_descendants_end(
typename Table<Path, T>::const_iterator parent) const
{
return find_range_end(parent, &Path::descendant_comparator);
}
};
} // namespace Raul
#endif // RAUL_PATH_TABLE_HPP
Raul::Path::descendant_comparator
static bool descendant_comparator(const Path &parent, const Path &child)
Return true if child is equal to, or a descendant of parent.
Definition: Path.hpp:211
Raul
Definition: Array.hpp:26
Raul::Table
Slow insertion, fast lookup, cache optimized, super fast sorted iteration.
Definition: Table.hpp:42
Raul::Table< Path, T >::find_range_end
const_iterator find_range_end(const_iterator left, bool(*comp)(const Path &, const Path &)) const
Raul::PathTable
Table of Paths.
Definition: PathTable.hpp:30
Raul::PathTable::find_descendants_end
Table< Path, T >::iterator find_descendants_end(typename Table< Path, T >::iterator parent)
Find all descendants of a Path key in the Table.
Definition: PathTable.hpp:37