Ejemplo n.º 1
0
void
terrama2::core::ProcessLogger::log(MessageType messageType, const std::string &description, RegisterId registerId) const
{
  if(!isValid_)
    throw terrama2::core::LogException() << ErrorDescription("Error on log!");

  if(tableName_.empty() || messagesTableName_.empty())
  {
    QString errMsg = QObject::tr("Can not find log tables names.");
    TERRAMA2_LOG_ERROR() << errMsg;
    throw terrama2::core::LogException() << ErrorDescription(errMsg);
  }

  std::shared_ptr< te::dt::TimeInstantTZ> now(TimeUtils::nowUTC());

  std::string escapedDescription(description);
  // TODO: Remove it when terralib escape work properly
  std::replace(escapedDescription.begin(), escapedDescription.end(), '\'', ' ');

  boost::format queryMessages("INSERT INTO " + messagesTableName_ + " (log_id, type, description, timestamp) VALUES(" + QString::number(registerId).toStdString() + ", %1%, '%2%', '%3%')");
  queryMessages.bind_arg(1, static_cast<int>(messageType));
  queryMessages.bind_arg(2, escapedDescription);
  queryMessages.bind_arg(3, now->toString());

  std::shared_ptr< te::da::DataSourceTransactor > transactor = dataSource_->getTransactor();
  transactor->execute(transactor->escape(queryMessages.str()));

  transactor->commit();
}
Ejemplo n.º 2
0
bool QMessageStore::removeMessages(const QMessageFilter& filter, QMessageManager::RemovalOption option)
{
    QMessageIdList ids = queryMessages(filter, QMessageSortOrder(), 0, 0);

    for (int i=0; i < ids.count(); i++) {
        if (ids[i].toString().startsWith("MO_")) {
            if (!ModestEngine::instance()->removeMessage(ids[i], option)) {
                return false;
            }
        } else if(!EventLoggerEngine::instance()->deleteMessage(ids[i]))
            return false;
    }
    return true;
}
Ejemplo n.º 3
0
int QMessageStore::countMessages(const QMessageFilter& filter) const
{
    return queryMessages(filter).count();
}