Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TaskFactory.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 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 
10 /// @file core/pack/task/PackerTaskFactory.hh
11 /// @brief Factory class for the creation and initialization of PackerTask objects
12 /// @author Andrew Leaver-Fay (leaverfa@email.unc.edu)
13 
14 #ifndef INCLUDED_core_pack_task_TaskFactory_hh
15 #define INCLUDED_core_pack_task_TaskFactory_hh
16 
17 // Unit Headers
19 #include <core/types.hh>
20 
21 // Package Headers
24 
25 // Project Headers
26 // AUTO-REMOVED #include <core/chemical/ResidueTypeSet.fwd.hh>
27 #include <core/pose/Pose.fwd.hh>
28 
29 // Utility Headers
30 #include <utility/pointer/ReferenceCount.hh>
31 
32 // C++ Headers
33 #include <list>
34 
35 #include <utility/vector1.hh>
36 
37 
38 namespace core {
39 namespace pack {
40 namespace task {
41 
42 /// @brief Factory class for the creation and initialization of PackerTask objects
44 {
45 public:
51  typedef std::list< TaskOperationOP > OperationList;
52  typedef OperationList::const_iterator const_iterator;
53 
54 public:
55 
56  TaskFactory();
57  TaskFactory( TaskFactory const & );
58  virtual ~TaskFactory();
59 
60  TaskFactory const & operator = ( TaskFactory const & );
61 
62  virtual TaskFactoryOP clone() const;
63 
64  /// @brief Non static version.
67 
68  void modify_task( core::pose::Pose const & pose, PackerTaskOP task ) const;
69 
70  /// @brief clones the input task, and pushes it back into the list
71  void
73 
74  void
76 
77  /// @brief begin iterator of operations_
79  begin() const;
80 
81  /// @brief end iterator of operations_
83  end() const;
84 
85  void
86  clear();
87 
88 /// @brief return the size of the operations_ list
89  core::Size size() const;
90 
91 public:
92  /// @brief Static construction of a task
93  static
95  create_packer_task( pose::Pose const & );
96 
97 private:
98 
99  void copy_operations( TaskFactory const & src );
100 
101 private:
103 
104 };
105 
106 } //namespace task
107 } //namespace pack
108 } //namespace core
109 
110 
111 #endif