Main Page
Related Pages
API Reference
Namespace List
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Variables
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
g
i
n
o
p
r
s
t
v
w
x
z
Enumerations
a
b
c
d
e
f
g
i
l
m
n
o
p
r
s
t
w
x
Enumerator
a
b
c
d
e
f
g
h
i
l
m
n
p
r
s
t
u
v
w
x
y
z
Class List
Class List
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
i
k
l
m
n
o
p
r
s
t
v
z
Enumerations
b
c
e
f
g
h
k
o
p
r
s
t
v
Enumerator
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
y
z
Related Functions
:
c
d
e
f
g
i
l
m
n
o
p
r
s
t
u
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
x
y
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
Variables
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
x
y
Typedefs
Enumerations
Enumerator
Macros
_
a
c
d
f
g
h
i
l
m
n
o
p
r
s
t
v
x
Examples
core
lib
NewNav
NDFUniqConstIterator.hpp
Go to the documentation of this file.
1
//==============================================================================
2
//
3
// This file is part of GNSSTk, the ARL:UT GNSS Toolkit.
4
//
5
// The GNSSTk is free software; you can redistribute it and/or modify
6
// it under the terms of the GNU Lesser General Public License as published
7
// by the Free Software Foundation; either version 3.0 of the License, or
8
// any later version.
9
//
10
// The GNSSTk is distributed in the hope that it will be useful,
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
// GNU Lesser General Public License for more details.
14
//
15
// You should have received a copy of the GNU Lesser General Public
16
// License along with GNSSTk; if not, write to the Free Software Foundation,
17
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
18
//
19
// This software was developed by Applied Research Laboratories at the
20
// University of Texas at Austin.
21
// Copyright 2004-2022, The Board of Regents of The University of Texas System
22
//
23
//==============================================================================
24
25
26
//==============================================================================
27
//
28
// This software was developed by Applied Research Laboratories at the
29
// University of Texas at Austin, under contract to an agency or agencies
30
// within the U.S. Department of Defense. The U.S. Government retains all
31
// rights to use, duplicate, distribute, disclose, or release this software.
32
//
33
// Pursuant to DoD Directive 523024
34
//
35
// DISTRIBUTION STATEMENT A: This software has been approved for public
36
// release, distribution is unlimited.
37
//
38
//==============================================================================
39
#ifndef GNSSTK_NDFUNIQUECONSTITERATOR_HPP
40
#define GNSSTK_NDFUNIQUECONSTITERATOR_HPP
41
42
#include <type_traits>
43
44
namespace
gnsstk
45
{
59
template
<
typename
T>
60
class
NDFUniqConstIterator
61
{
62
public
:
63
NDFUniqConstIterator
()
64
:
map
(nullptr)
65
{}
66
NDFUniqConstIterator
(
const
T& omap)
67
:
nuit
(omap.
begin
()),
map
(&omap)
68
{}
69
NDFUniqConstIterator
(
const
T& omap,
typename
T::const_iterator i)
70
:
nuit
(i),
map
(&omap)
71
{}
72
NDFUniqConstIterator
&
operator++
()
73
{
74
nuit
++;
75
NavDataFactory
*ndfp =
dynamic_cast<
NavDataFactory
*
>
(
76
nuit
->second.get());
77
while
((
nuit
!=
map
->end()) && (
uniques
.count(ndfp) > 0))
78
{
79
nuit
++;
80
if
(
nuit
!=
map
->end())
81
{
82
ndfp =
dynamic_cast<
NavDataFactory
*
>
(
nuit
->second.get());
83
}
84
}
85
return
*
this
;
86
}
87
const
typename
T::value_type&
operator*
()
88
{
89
if
(
nuit
!=
map
->end())
90
{
91
NavDataFactory
*ndfp =
dynamic_cast<
NavDataFactory
*
>
(
92
nuit
->second.get());
93
uniques
.insert(ndfp);
94
}
95
return
*
nuit
;
96
}
97
NDFUniqConstIterator
begin
()
98
{
return
NDFUniqConstIterator
(*
map
); }
99
NDFUniqConstIterator
end
()
100
{
return
NDFUniqConstIterator
(*
map
,
map
->end()); }
101
bool
operator!=
(
const
NDFUniqConstIterator
& i)
102
{
return
((
map
!= i.
map
) || (
nuit
!= i.
nuit
)); }
103
private
:
105
typename
T::const_iterator
nuit
;
107
std::set<typename T::mapped_type::element_type*>
uniques
;
109
const
T*
map
;
110
};
111
}
112
113
#endif // GNSSTK_NDFUNIQUECONSTITERATOR_HPP
gnsstk::NDFUniqConstIterator::NDFUniqConstIterator
NDFUniqConstIterator(const T &omap, typename T::const_iterator i)
Definition:
NDFUniqConstIterator.hpp:69
gnsstk::NDFUniqConstIterator::map
const T * map
Original map.
Definition:
NDFUniqConstIterator.hpp:109
gnsstk::NDFUniqConstIterator::uniques
std::set< typename T::mapped_type::element_type * > uniques
Pointers already encountered. This assumes a map to a shared_ptr.
Definition:
NDFUniqConstIterator.hpp:107
gnsstk::NDFUniqConstIterator::operator*
const T::value_type & operator*()
Definition:
NDFUniqConstIterator.hpp:87
gnsstk
For Sinex::InputHistory.
Definition:
BasicFramework.cpp:50
gnsstk::NDFUniqConstIterator::begin
NDFUniqConstIterator begin()
Definition:
NDFUniqConstIterator.hpp:97
gnsstk::NDFUniqConstIterator::NDFUniqConstIterator
NDFUniqConstIterator()
Definition:
NDFUniqConstIterator.hpp:63
gnsstk::NDFUniqConstIterator::NDFUniqConstIterator
NDFUniqConstIterator(const T &omap)
Definition:
NDFUniqConstIterator.hpp:66
gnsstk::NDFUniqConstIterator::operator!=
bool operator!=(const NDFUniqConstIterator &i)
Definition:
NDFUniqConstIterator.hpp:101
gnsstk::NavDataFactory
Definition:
NavDataFactory.hpp:60
gnsstk::NDFUniqConstIterator::operator++
NDFUniqConstIterator & operator++()
Definition:
NDFUniqConstIterator.hpp:72
gnsstk::NDFUniqConstIterator::nuit
T::const_iterator nuit
non-unique iterator.
Definition:
NDFUniqConstIterator.hpp:105
gnsstk::NDFUniqConstIterator::end
NDFUniqConstIterator end()
Definition:
NDFUniqConstIterator.hpp:99
gnsstk::NDFUniqConstIterator
Definition:
NDFUniqConstIterator.hpp:60
gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:40