18 #include <boost/uuid/uuid.hpp>
19 #include <boost/uuid/uuid_io.hpp>
22 #include <basic/Tracer.hh>
23 #include <basic/database/sql_utils.hh>
24 #include <utility/sql_database/DatabaseSessionManager.hh>
25 #include <utility/string_util.hh>
26 #include <utility/tag/Tag.hh>
27 #include <utility/vector1.hh>
30 #include <basic/datacache/BasicDataCache.hh>
31 #include <basic/datacache/CacheableString.hh>
35 #include <basic/database/sql_utils.hh>
38 #include <boost/foreach.hpp>
39 #include <boost/tokenizer.hpp>
40 #define foreach BOOST_FOREACH
43 #include <cppdb/frontend.h>
50 #include <utility/vector0.hh>
60 using basic::datacache::CacheableString;
61 using boost::char_separator;
62 using boost::tokenizer;
65 using cppdb::statement;
66 using cppdb::cppdb_error;
73 using std::stringstream;
75 using basic::database::safely_prepare_statement;
76 using basic::database::safely_write_to_database;
79 using utility::sql_database::sessionOP;
81 static Tracer
TR(
"protocols.features.FeaturesReporter");
88 string schema_str(
schema());
90 basic::database::write_schema_to_database(schema_str,db_session);
91 }
catch (cppdb::cppdb_error error){
94 <<
"Failed to write database schema for '" <<
type_name() <<
"'" << endl
95 <<
"Error Message:" << endl << error.what() << endl
96 <<
"Schema:" << endl << schema_str << endl;
97 utility_exit_with_message(err_msg.str());
109 boost::uuids::uuid parent_id,
113 return report_features(pose, relevant_residues, parent_id, db_session);
128 Size dummy_parent_id(0);
129 return dummy_parent_id;
141 runtime_assert(tag->getName() ==
"feature");
156 name =
static_cast< basic::datacache::CacheableString
const &
>
167 string const & table_name,
168 boost::uuids::uuid struct_id,
169 sessionOP db_session){
171 sql <<
"DELETE FROM " << table_name <<
" WHERE struct_id = ?;";
172 statement stmt(safely_prepare_statement(sql.str(), db_session));
173 stmt.bind(1,struct_id);
174 safely_write_to_database(stmt);