Version: 8.3.0
Main Page
Related Pages
Packages
Data Structures
Files
File List
Globals
SMDS_IteratorOnIterators.hxx
Go to the documentation of this file.
1
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2
//
3
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5
//
6
// This library is free software; you can redistribute it and/or
7
// modify it under the terms of the GNU Lesser General Public
8
// License as published by the Free Software Foundation; either
9
// version 2.1 of the License, or (at your option) any later version.
10
//
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
// Lesser General Public License for more details.
15
//
16
// You should have received a copy of the GNU Lesser General Public
17
// License along with this library; if not, write to the Free Software
18
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
//
20
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
//
22
23
// SMESH SMDS : implementaion of Salome mesh data structure
24
// File : SMDS_IteratorOnIterators.hxx
25
// Author : Edward AGAPOV (eap)
26
//
27
#ifndef SMDS_IteratorOnIterators_HeaderFile
28
#define SMDS_IteratorOnIterators_HeaderFile
29
30
#include "
SMDS_Iterator.hxx
"
31
39
40
template
<
typename
VALUE,
41
typename
CONTAINER_OF_ITERATORS >
42
class
SMDS_IteratorOnIterators
:
public
SMDS_Iterator
<VALUE>
43
{
44
protected
:
45
CONTAINER_OF_ITERATORS
_iterators
;
46
typename
CONTAINER_OF_ITERATORS::iterator
_beg
,
_end
;
47
public
:
48
SMDS_IteratorOnIterators
(
const
CONTAINER_OF_ITERATORS& iterators):
49
_iterators
( iterators ),
_beg
(
_iterators
.begin()),
_end
(
_iterators
.end() )
50
{
51
while
(
_beg
!=
_end
&& !(*_beg)->more()) ++
_beg
;
52
}
53
55
virtual
bool
more
() {
return
_beg
!=
_end
&& (*_beg)->more(); }
56
58
virtual
VALUE
next
()
59
{
60
VALUE __v = (VALUE)(*_beg)->next();
61
while
(
_beg
!=
_end
&& !(*_beg)->more())
62
++
_beg
;
63
return
__v;
64
}
65
};
66
67
#endif
src
SMDS
SMDS_IteratorOnIterators.hxx
Copyright © 2007-2017 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS