Program Listing for File Statistic.cpp

Return to documentation for file (umpire/util/Statistic.cpp)

//////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2016-20, Lawrence Livermore National Security, LLC and Umpire
// project contributors. See the COPYRIGHT file for details.
//
// SPDX-License-Identifier: (MIT)
//////////////////////////////////////////////////////////////////////////////

#include "umpire/util/Statistic.hpp"

#include <iostream>

#include "umpire/util/Macros.hpp"

#include "conduit.hpp"

namespace umpire {
namespace util {

Statistic::Statistic(const std::string& name) noexcept:
  m_name(name),
  m_counter(),
  m_data()
{
  m_data["name"] = name;
}

Statistic::~Statistic() noexcept
{
}

void
Statistic::recordStatistic(conduit::Node&& stat)
{
  auto time = std::chrono::time_point_cast<std::chrono::nanoseconds>(std::chrono::system_clock::now()).time_since_epoch();
  stat["timestamp"] = static_cast<long>(time.count());

  m_data["statistics"].append().set(stat);
}

void
Statistic::printData(std::ostream& stream) noexcept
{
  m_data.print();
}

} // end of namespace util
} // end of namespace umpire