Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JobInputter.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 protocols/jd2/JobInputter.hh
11 /// @brief header file for JobInputter class, part of August 2008 job distributor as planned at RosettaCon08
12 /// @author Steven Lewis smlewi@gmail.com
13 
14 
15 #ifndef INCLUDED_protocols_jd2_JobInputter_hh
16 #define INCLUDED_protocols_jd2_JobInputter_hh
17 
18 //unit headers
19 #include <core/types.hh>
21 #include <protocols/jd2/Job.fwd.hh>
22 
23 //project headers
24 #include <core/pose/Pose.fwd.hh>
25 
26 //utility headers
27 #include <utility/pointer/ReferenceCount.hh>
28 
29 #include <utility/vector1.hh>
30 
31 
32 namespace protocols {
33 namespace jd2 {
34 
35 
36 ///@details the JobInputter class is responsible for A) determining what jobs exist, and B) taking a job object and returning the starting pose associated with that job. NOTE: your JobInputter should order Job objects in the Jobs vector to have as few "transitions" between inputs as possible (group all Jobs of the same input next to each other). This improves efficiency of the "FAIL_BAD_INPUT" functionality. I said "should", not "must" on purpose.
38 {
39 public:
40 
41  virtual ~JobInputter();
42 
43  ///@brief this function is responsible for filling the pose reference with the pose indicated by the job. The Job object (within its InnerJob) contains a PoseCOP. This function needs to either fill the pose reference from the InnerJob or, on first demand of a pose from that InnerJob, instantiate the pose, hand off a COP to the InnerJob, and fill the reference.
44  virtual void pose_from_job( core::pose::Pose & pose, JobOP job ) = 0;
45 
46  ///@brief this function determines what jobs exist. This function neither knows nor cares what jobs are already complete on disk/memory - it just figures out what ones should exist given the input. NOTE: your JobInputter should order Job objects in the Jobs vector to have as few "transitions" between inputs as possible (group all Jobs of the same input next to each other). This improves efficiency of the "FAIL_BAD_INPUT" functionality. Note I said "should", not "must".
47  virtual void fill_jobs( Jobs & jobs ) = 0;
48 
49  /// @brief return the type of input source that the JobInputter is currently
50  /// using
51  virtual JobInputterInputSource::Enum input_source() const = 0;
52 
53  ///@brief call this with input_source() to get the input source of a
54  ///particular job inputter
55  static
59 
60 
61 protected:
62  ///@brief this function modifies the InnerJob's pose. Access to that pose is via friendship.
63  void load_pose_into_job( core::pose::Pose const & pose, JobOP job );
64 
65  ///@brief this function modifies the InnerJob's pose. Access to that pose is via friendship.
67 
68  virtual core::Size get_nstruct() const;
69 
70 }; // JobInputter
71 
72 
73 
74 } // namespace jd2
75 } // namespace protocols
76 
77 #endif //INCLUDED_protocols_jd2_JobInputter_HH