SST  15.1.0
StructuralSimulationToolkit
jsonConfigOutput.h
1 // Copyright 2009-2025 NTESS. Under the terms
2 // of Contract DE-NA0003525 with NTESS, the U.S.
3 // Government retains certain rights in this software.
4 //
5 // Copyright (c) 2009-2025, NTESS
6 // All rights reserved.
7 //
8 // This file is part of the SST software package. For license
9 // information, see the LICENSE file in the top level directory of the
10 // distribution.
11 //
12 
13 #ifndef SST_CORE_JSON_CONFIG_OUTPUT_H
14 #define SST_CORE_JSON_CONFIG_OUTPUT_H
15 
16 #include "sst/core/configGraph.h"
17 #include "sst/core/configGraphOutput.h"
18 #include "sst/core/util/filesystem.h"
19 
20 #include <map>
21 #include <string>
22 
23 namespace SST::Core {
24 
26 {
27 
28 public:
29  explicit JSONConfigGraphOutput(const char* path);
30  virtual void generate(const Config* cfg, ConfigGraph* graph) override;
31 
32 private:
33  std::map<SST::StatisticId_t, std::string> sharedStatMap;
34 
35  std::string pathStr;
36 
37  void outputProgramOptions(const Config* cfg, std::ofstream& ofs);
38  void outputSharedParams(std::ofstream& ofs);
39  void outputStatisticsOptions(ConfigGraph* graph, std::ofstream& ofs);
40  void outputStatisticsGroups(ConfigGraph* graph, std::ofstream& ofs);
41  void outputComponents(const Config* cfg, ConfigGraph* graph, std::ofstream& ofs);
42  void outputLinks(ConfigGraph* graph, std::ofstream& ofs);
43 };
44 
45 } // namespace SST::Core
46 
47 #endif // SST_CORE_JSON_CONFIG_OUTPUT_H
Definition: jsonConfigOutput.h:25
Outputs configuration data to a specified file path.
Definition: configGraphOutput.h:61
Class to contain SST Simulation Configuration variables.
Definition: config.h:51
A Configuration Graph A graph representing Components and Links.
Definition: configGraph.h:585
virtual void generate(const Config *cfg, ConfigGraph *graph) override
Definition: jsonConfigOutput.cc:445