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
protocols
match
output
MatchProcessor.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 protocols/match/output/MatchProcessor.hh
12
/// @brief
13
/// @author Alex Zanghellini (zanghell@u.washington.edu)
14
/// @author Andrew Leaver-Fay (aleaverfay@gmail.com), Florian Richter (floric@u.washington.edu), porting to mini
15
16
#ifndef INCLUDED_protocols_match_output_MatchProcessor_hh
17
#define INCLUDED_protocols_match_output_MatchProcessor_hh
18
19
// Unit headers
20
#include <
protocols/match/output/MatchProcessor.fwd.hh
>
21
22
// Package headers
23
#include <
protocols/match/Hit.fwd.hh
>
24
#include <
protocols/match/output/MatchFilter.fwd.hh
>
25
#include <
protocols/match/output/OutputWriter.fwd.hh
>
26
#include <
protocols/match/output/UpstreamCollisionFilter.fwd.hh
>
27
#include <
protocols/match/output/UpstreamDownstreamCollisionFilter.fwd.hh
>
28
29
// Utility headers
30
#include <utility/pointer/ReferenceCount.hh>
31
32
// c++ headers
33
#include <map>
34
35
#ifdef WIN32
36
#include <
protocols/match/Hit.hh
>
37
#endif
38
39
40
namespace
protocols {
41
namespace
match
{
42
namespace
output {
43
44
class
MatchProcessor
:
public
utility::pointer::ReferenceCount
{
45
public
:
46
47
MatchProcessor
();
48
49
virtual
50
~MatchProcessor
();
51
52
/// @brief Invoked by the Matcher before it begins feeding matches to the processor.
53
/// Base-class has a no-op implementation.
54
virtual
55
void
56
begin_processing
();
57
58
virtual
59
void
60
process_match
(
61
match
const
& m
62
) = 0;
63
64
virtual
65
void
66
process_match
(
67
match_dspos1
const
& m
68
) = 0;
69
70
/// @brief Invoked by the Matcher after it finishes feeding matches to the processor.
71
/// Base-class has a no-op implementation.
72
virtual
73
void
74
end_processing
();
75
76
bool
77
match_processing_successful
()
const
{
78
return
match_processing_successful_
; }
79
80
void
81
set_output_writer
(
OutputWriterOP
writer );
82
83
/// @brief const access to the output writer, e.g.
84
/// for the MatcherMover when incorporating matches
85
/// into the pose
86
OutputWriterOP
87
output_writer
();
88
89
void
90
add_filter
(
MatchFilterOP
filter );
91
92
void
93
reset_filters
();
94
95
void
96
clear_filters
();
97
98
UpstreamDownstreamCollisionFilterCOP
99
up_down_filt
()
const
;
100
101
UpstreamCollisionFilterCOP
102
up_coll_filt
()
const
;
103
104
105
protected
:
106
107
bool
108
passes_filters
(
109
match
const
& m
110
);
111
112
bool
113
passes_filters
(
114
match_dspos1
const
& m
115
);
116
117
void
118
note_match_processed
();
119
120
bool
match_processing_successful_
;
121
122
OutputWriterOP
writer_
;
123
124
private
:
125
126
void
127
note_filter_fail
(
std::string
filter_name );
128
129
std::list< MatchFilterOP >
filters_
;
/// NOTE: these filters are not given the opportunity to accumulate state.
130
std::list< StateAccumulatingMatchFilterOP >
filters_with_state_
;
131
std::map< std::string, core::Size >
filter_failcounts_
;
132
core::Size
num_matches_processed_
;
133
134
/// NOTE: this is used for clash checking between upstream only hits and the ligand
135
UpstreamDownstreamCollisionFilterCOP
up_down_filt_
;
136
137
UpstreamCollisionFilterCOP
up_coll_filt_
;
138
};
139
140
}
141
}
142
}
143
144
#endif
Generated on Sat Jun 1 2013 11:59:41 for Rosetta 3.5 by
1.8.4