Skip to content
Snippets Groups Projects
Commit 7b57cba0 authored by Marco De Marco's avatar Marco De Marco
Browse files

Fill response method added

parent 2b338a89
No related branches found
No related tags found
No related merge requests found
...@@ -114,12 +114,12 @@ DBManager::InformationList DBManager::retrieveInformation(std::string schema, ...@@ -114,12 +114,12 @@ DBManager::InformationList DBManager::retrieveInformation(std::string schema,
} }
//============================================================================== //==============================================================================
// DBManager::retrieveInformation() // DBManager::retrieveNewTuples()
//============================================================================== //==============================================================================
soci::rowset<soci::row> DBManager::searchNewTuples(std::string schema, soci::rowset<soci::row> DBManager::retrieveNewTuples(std::string schema,
std::string table, std::tm update_time) throw(soci::soci_error) std::string table, std::tm update_time) throw(soci::soci_error)
{ {
DEBUG_STREAM << "DBManager::searchNewTuples()" << endl; DEBUG_STREAM << "DBManager::retrieveNewTuples()" << endl;
soci::session session(*m_connectionPool_sp); soci::session session(*m_connectionPool_sp);
...@@ -127,7 +127,11 @@ soci::rowset<soci::row> DBManager::searchNewTuples(std::string schema, ...@@ -127,7 +127,11 @@ soci::rowset<soci::row> DBManager::searchNewTuples(std::string schema,
<< schema << "." << table << " where update_time>=:timestamp", << schema << "." << table << " where update_time>=:timestamp",
soci::use(update_time,"timestamp")); soci::use(update_time,"timestamp"));
return rows; MetadataList metadataList;
std::copy(rows.begin(), rows.end(), std::back_inserter(metadataList));
return metadataList;
} }
} //namespace } //namespace
...@@ -75,7 +75,9 @@ public: ...@@ -75,7 +75,9 @@ public:
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// [Public] Search new tuple method // [Public] Search new tuple method
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
virtual soci::rowset<soci::row> searchNewTuples(std::string, std::string, typedef std::vector<soci::row> MetadataList;
virtual MetadataList retrieveNewTuples(std::string, std::string,
std::tm) throw(soci::soci_error); std::tm) throw(soci::soci_error);
protected: protected:
......
...@@ -187,6 +187,9 @@ ResponseSP ProtocolManager::prepareValidation(RequestSP request_sp) ...@@ -187,6 +187,9 @@ ResponseSP ProtocolManager::prepareValidation(RequestSP request_sp)
} }
catch(std::runtime_error& ex) catch(std::runtime_error& ex)
{ {
WARN_STREAM << "ProtocolManager::prepareValidation() "
<< ex.what() << " from " << m_remoteEndpoint << endl;
validationRes->set_state(Response::Validation::REJECTED); validationRes->set_state(Response::Validation::REJECTED);
validationRes->set_status(ex.what()); validationRes->set_status(ex.what());
} }
...@@ -244,17 +247,39 @@ ResponseSP ProtocolManager::prepareMetadata(RequestSP request_sp) ...@@ -244,17 +247,39 @@ ResponseSP ProtocolManager::prepareMetadata(RequestSP request_sp)
<< "schema " << schema << " table " << table << " timestamp " << "schema " << schema << " table " << table << " timestamp "
<< asctime(&timestamp) << " from " << m_remoteEndpoint << endl; << asctime(&timestamp) << " from " << m_remoteEndpoint << endl;
try
{
DBManager::MetadataList metadataList =
m_dBManager_sp->retrieveNewTuples(schema, table, timestamp);
fillResponse(metadataRes, metadataList);
metadataRes->set_state(Response::Metadata::ACCEPTED); metadataRes->set_state(Response::Metadata::ACCEPTED);
metadataRes->set_status("Metadata ready"); metadataRes->set_status("Metadata ready");
} }
catch(std::runtime_error& ex)
{
WARN_STREAM << "ProtocolManager::prepareMetadata() "
<< ex.what() << " from " << m_remoteEndpoint << endl;
metadataRes->set_state(Response::Metadata::REJECTED);
metadataRes->set_status(ex.what());
}
}
else else
{ {
WARN_STREAM << "ProtocolManager::prepareMetadata() "
<< "Not validated from " << m_remoteEndpoint << endl;
metadataRes->set_state(Response::Metadata::REJECTED); metadataRes->set_state(Response::Metadata::REJECTED);
metadataRes->set_status("Not validated"); metadataRes->set_status("Not validated");
} }
} }
else else
{ {
WARN_STREAM << "ProtocolManager::prepareMetadata() "
<< "Not authorised from " << m_remoteEndpoint << endl;
metadataRes->set_state(Response::Metadata::REJECTED); metadataRes->set_state(Response::Metadata::REJECTED);
metadataRes->set_status("Not authorised"); metadataRes->set_status("Not authorised");
} }
...@@ -324,4 +349,13 @@ void ProtocolManager::validateColumn(const Request::Validation::Column& column, ...@@ -324,4 +349,13 @@ void ProtocolManager::validateColumn(const Request::Validation::Column& column,
} }
} }
//==============================================================================
// ProtocolManager::fillResponse()
//==============================================================================
void ProtocolManager::fillResponse(const Response::Metadata& metadataRes,
DBManager::MetadataList metadataList) throw(std::runtime_error)
{
DEBUG_STREAM << "ProtocolManager::fillResponse()" << endl;
}
} //namespace } //namespace
...@@ -78,6 +78,9 @@ protected: ...@@ -78,6 +78,9 @@ protected:
virtual void validateColumn(const Request::Validation::Column&, virtual void validateColumn(const Request::Validation::Column&,
DBManager::InformationList&) throw(std::runtime_error); DBManager::InformationList&) throw(std::runtime_error);
virtual void fillResponse(const Response::Metadata&,
DBManager::MetadataList) throw(std::runtime_error);
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// [Protected] Class variables // [Protected] Class variables
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment