Program Listing for File AllocationRecord.hpp

Return to documentation for file (umpire/util/AllocationRecord.hpp)

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

#include <cstddef>
#include <memory>

#include "umpire/util/backtrace.hpp"

namespace umpire {

namespace strategy {
class AllocationStrategy;
}

namespace util {

struct AllocationRecord {
  AllocationRecord(void* p, std::size_t s, strategy::AllocationStrategy* strat)
      : ptr{p}, size{s}, strategy{strat}
  {
  }

  AllocationRecord() : ptr{nullptr}, size{0}, strategy{nullptr}
  {
  }

  void* ptr;
  std::size_t size;
  strategy::AllocationStrategy* strategy;
#if defined(UMPIRE_ENABLE_BACKTRACE)
  util::backtrace allocation_backtrace;
#endif // UMPIRE_ENABLE_BACKTRACE
};

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

#endif // UMPIRE_AllocationRecord_HPP