Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-17 08:54:09

0001 //------------------------------- -*- C++ -*- -------------------------------//
0002 // Copyright Celeritas contributors: see top-level COPYRIGHT file for details
0003 // SPDX-License-Identifier: (Apache-2.0 OR MIT)
0004 //---------------------------------------------------------------------------//
0005 //! \file corecel/sys/ActionRegistryOutput.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include <memory>
0010 
0011 #include "corecel/io/OutputInterface.hh"
0012 
0013 namespace celeritas
0014 {
0015 class ActionRegistry;
0016 //---------------------------------------------------------------------------//
0017 /*!
0018  * Save action manager data.
0019  */
0020 class ActionRegistryOutput final : public OutputInterface
0021 {
0022   public:
0023     //!@{
0024     //! \name Type aliases
0025     using SPConstActionRegistry = std::shared_ptr<ActionRegistry const>;
0026     //!@}
0027 
0028   public:
0029     // Construct from a shared action manager
0030     explicit ActionRegistryOutput(SPConstActionRegistry actions);
0031 
0032     //! Category of data to write
0033     Category category() const final { return Category::internal; }
0034 
0035     //! Name of the entry inside the category.
0036     std::string_view label() const final { return "actions"; }
0037 
0038     // Write output to the given JSON object
0039     void output(JsonPimpl*) const final;
0040 
0041   private:
0042     SPConstActionRegistry actions_;
0043 };
0044 
0045 //---------------------------------------------------------------------------//
0046 }  // namespace celeritas