Rosetta 3.5
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
core
fragment
FrameIterator.hh
Go to the documentation of this file.
1
// -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2
// vi: set ts=2 noet:
3
// :noTabs=false:tabSize=4:indentSize=4:
4
//
5
// (c) Copyright Rosetta Commons Member Institutions.
6
// (c) This file is part of the Rosetta software suite and is made available under license.
7
// (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
8
// (c) For more information, see http://www.rosettacommons.org. Questions about this can be
9
// (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
10
11
/// @file core/fragments/FrameIterator.hh
12
/// @brief
13
/// @author Oliver Lange ( olange@u.washington.edu)
14
/// @date Wed Aug 22 12:08:31 2007
15
///
16
17
#ifndef INCLUDED_core_fragment_FrameIterator_HH
18
#define INCLUDED_core_fragment_FrameIterator_HH
19
20
// Unit Headers
21
#include <
core/fragment/FrameIterator.fwd.hh
>
22
23
// AUTO-REMOVED #include <core/fragment/FragSet.fwd.hh>
24
25
// Package Headers
26
// no fwd here. The FrameIteratorWorker_ is really a HIDDEN detail. since this isn't a NODE header there is no danger of polluting the
27
// header graph.
28
// can't expect users of these classes to figure out that they have to include it, too.
29
#include <
core/fragment/FrameIteratorWorker_.hh
>
30
//#include <core/fragment/Frame.hh>
31
//#include <core/fragment/FragID_Iterator.fwd.hh>
32
33
// Project Headers
34
#include <
core/types.hh
>
35
36
// ObjexxFCL Headers
37
38
// Utility header
39
// AUTO-REMOVED #include <utility/vector1.hh>
40
// AUTO-REMOVED #include <utility/pointer/ReferenceCount.hh>
41
42
// std Headers
43
// AUTO-REMOVED #include <iterator>
44
45
#include <
core/fragment/Frame.fwd.hh
>
46
#include <
core/fragment/FrameIteratorWorker_.fwd.hh
>
47
#include <utility/vector1.hh>
48
49
50
/*
51
Might change the FrameIterator to return FrameOP instead of Frame&...
52
This has the advantage of bein closer to the std:: implementations...
53
for instance one could do a
54
FrameList my_list;
55
FrameIterator it=fragset.begin(), eit=fragset.end();
56
copy( it, eit,back_inserter( my_list ));
57
58
the it-> wouldn't change, it still returns a Frame*
59
the *it would change and return a Frame* ...
60
61
*/
62
63
namespace
core {
64
namespace
fragment {
65
66
67
class
FrameIterator
:
public
std::iterator< std::forward_iterator_tag, Frame > {
68
friend
class
FragID_Iterator
;
69
70
public
:
71
FrameIterator
(
FrameIteratorWorker_OP
it );
72
FrameIterator
();
73
~FrameIterator
();
74
75
bool
operator !=
(
FrameIterator
const
& fi)
const
;
76
bool
operator ==
(
FrameIterator
const
& fi)
const
;
77
FrameIterator
&
operator++
();
78
FrameIterator
&
operator+
(
Size
offset );
79
80
FrameIterator
const
&
operator =
(
FrameIterator
const
& itr );
81
82
FrameOP
operator*
();
83
84
FrameCOP
operator*
()
const
;
85
86
FrameOP
operator->
();
87
88
FrameCOP
operator->
()
const
;
89
90
FrameOP
frame_ptr
();
91
92
FrameCOP
frame_ptr
()
const
;
93
94
protected
:
95
FrameIteratorWorker_OP
it_
;
96
97
};
98
99
}
100
}
101
102
#endif
Generated on Sat Jun 1 2013 11:32:35 for Rosetta 3.5 by
1.8.4