Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
21 
22 // Package headers
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 
45 public:
46 
48 
49  virtual
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
57 
58  virtual
59  void
61  match const & m
62  ) = 0;
63 
64  virtual
65  void
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
75 
76  bool
79 
80  void
82 
83  /// @brief const access to the output writer, e.g.
84  /// for the MatcherMover when incorporating matches
85  /// into the pose
87  output_writer();
88 
89  void
90  add_filter( MatchFilterOP filter );
91 
92  void
93  reset_filters();
94 
95  void
96  clear_filters();
97 
99  up_down_filt() const;
100 
102  up_coll_filt() const;
103 
104 
105 protected:
106 
107  bool
109  match const & m
110  );
111 
112  bool
114  match_dspos1 const & m
115  );
116 
117  void
119 
121 
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_;
133 
134  /// NOTE: this is used for clash checking between upstream only hits and the ligand
136 
138 };
139 
140 }
141 }
142 }
143 
144 #endif