Commit 7b57cba0 authored by Marco De Marco's avatar Marco De Marco
Browse files

Fill response method added

parent 2b338a89
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -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
+3 −1
Original line number Diff line number Diff line
@@ -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:
+36 −2
Original line number Diff line number Diff line
@@ -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
+4 −1
Original line number Diff line number Diff line
@@ -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
//------------------------------------------------------------------------------