Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
StrandFragment.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 StrandFragment.hh
11 ///
12 /// @brief Small helper class that stores the start and end of a strand secondary structure
13 
14 /// @author Tim jacobs
15 
16 #ifndef INCLUDED_protocols_features_strand_assembly_STRANDFRAGMENT_HH
17 #define INCLUDED_protocols_features_strand_assembly_STRANDFRAGMENT_HH
18 
19 //Core
20 #include <core/types.hh>
21 #include <core/pose/Pose.hh>
22 
23 //Utility
24 #include <utility/vector1.fwd.hh>
25 
26 //Devel
27 //#include <devel/strand_assembly/NativeResidue.hh>
28 
29 //External
30 //#include <boost/serialization/access.hpp>
31 //#include <boost/serialization/map.hpp>
32 //#include <boost/serialization/vector.hpp>
33 //#include <boost/serialization/string.hpp>
34 
35 //C++ Headers
36 #include <string>
37 #include <vector>
38 #include <map>
39 
40 namespace protocols {
41 namespace features {
42 namespace strand_assembly {
43 
45 
46 public:
47 
49 
50  StrandFragment(core::Size start, core::Size end, bool direction);
51 
52  //This really shouldn't exist, but boost uses it for serialization (I couldn't figure out the way around this).
53  //Either way, start_ and end_ are read-only members, so a Fragment assembled in this way won't be very useful....
55 
57 
58  core::Size get_end() const;
60  core::Size get_start() const;
61  core::Size get_size() const;
62  bool get_direction() const;
64  void set_direction(bool direction);
65 
66 // void insertResiduesFromPose(const core::pose::Pose & pose,
67 // core::Size start, core::Size end, const core::pose::Pose & this_pose);
68 //
69 // std::string print() const;
70 
71 private:
72  /*
73  friend class boost::serialization::access;
74 
75  // When the class Archive corresponds to an output archive, the
76  // & operator is defined similar to <<. Likewise, when the class Archive
77  // is a type of input archive the & operator is defined similar to >>.
78  template<class Archive>
79  void serialize(Archive & ar, const unsigned int version)
80  {
81  ar & start_;
82  ar & end_;
83  ar & pdb_source_;
84  ar & direction_;
85 // ar & residue_map_;
86 // ar & residue_list_;
87  } */
88 
92  bool direction_;
93 // std::map<core::Size, std::vector<NativeResidue> > residue_map_;
94 // std::vector<std::vector<NativeResidue> > residue_list_;
95 
96 };
97 
98 //namespace boost { namespace serialization {
99 //template<class Archive>
100 //inline void save_construct_data(
101 // Archive & ar, const STRANDFragment * t, const unsigned int file_version
102 //){
103 // // save data required to construct instance
104 // size_t start(t->get_start());
105 // size_t end(t->get_end());
106 // ar << start;
107 // ar << end;
108 //}
109 //
110 //template<class Archive>
111 //inline void load_construct_data(
112 // Archive & ar, STRANDFragment * t, const unsigned int file_version
113 //){
114 // // retrieve data from archive required to construct new instance
115 // size_t start;
116 // size_t end;
117 // ar >> start;
118 // ar >> end;
119 // // invoke inplace constructor to initialize instance of my_class
120 // ::new(t)STRANDFragment(start, end);
121 //}
122 //}}
123 
124 } //namespace strand_assembly
125 } //namespace features
126 } //namespace protocols
127 
128 #endif /* STRANDFRAGMENT_HH_ */