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
Branches
Tags
No related merge requests found
......@@ -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)
{
DEBUG_STREAM << "DBManager::searchNewTuples()" << endl;
DEBUG_STREAM << "DBManager::retrieveNewTuples()" << endl;
soci::session session(*m_connectionPool_sp);
......@@ -127,7 +127,11 @@ soci::rowset<soci::row> DBManager::searchNewTuples(std::string schema,
<< schema << "." << table << " where 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
......@@ -75,7 +75,9 @@ public:
//------------------------------------------------------------------------------
// [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);
protected:
......
......@@ -187,6 +187,9 @@ ResponseSP ProtocolManager::prepareValidation(RequestSP request_sp)
}
catch(std::runtime_error& ex)
{
WARN_STREAM << "ProtocolManager::prepareValidation() "
<< ex.what() << " from " << m_remoteEndpoint << endl;
validationRes->set_state(Response::Validation::REJECTED);
validationRes->set_status(ex.what());
}
......@@ -244,17 +247,39 @@ ResponseSP ProtocolManager::prepareMetadata(RequestSP request_sp)
<< "schema " << schema << " table " << table << " timestamp "
<< 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_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
{
WARN_STREAM << "ProtocolManager::prepareMetadata() "
<< "Not validated from " << m_remoteEndpoint << endl;
metadataRes->set_state(Response::Metadata::REJECTED);
metadataRes->set_status("Not validated");
}
}
else
{
WARN_STREAM << "ProtocolManager::prepareMetadata() "
<< "Not authorised from " << m_remoteEndpoint << endl;
metadataRes->set_state(Response::Metadata::REJECTED);
metadataRes->set_status("Not authorised");
}
......@@ -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
......@@ -78,6 +78,9 @@ protected:
virtual void validateColumn(const Request::Validation::Column&,
DBManager::InformationList&) throw(std::runtime_error);
virtual void fillResponse(const Response::Metadata&,
DBManager::MetadataList) throw(std::runtime_error);
//------------------------------------------------------------------------------
// [Protected] Class variables
//------------------------------------------------------------------------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment