SST 15.0
Structural Simulation Toolkit
pythonConfigOutput.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_PYTHON_CONFIG_OUTPUT_H
14#define SST_CORE_PYTHON_CONFIG_OUTPUT_H
15
16#include "sst/core/configGraph.h"
17#include "sst/core/configGraphOutput.h"
18
19#include <cstddef>
20#include <map>
21#include <string>
22
23namespace SST::Core {
24
25class PythonConfigGraphOutput : public ConfigGraphOutput
26{
27public:
28 explicit PythonConfigGraphOutput(const char* path);
29
30 virtual void generate(const Config* cfg, ConfigGraph* graph) override;
31
32protected:
33 ConfigGraph* getGraph() { return graph_; }
34 void generateParams(const Params& params);
35 void generateCommonComponent(const char* objName, const ConfigComponent* comp);
36 void generateSubComponent(const char* owner, const ConfigComponent* comp);
37 void generateComponent(const ConfigComponent* comp, bool output_parition_info);
38 void generateStatGroup(const ConfigGraph* graph, const ConfigStatGroup& grp);
39
40 const std::string& getLinkObject(LinkId_t id, const std::string& name, bool no_cut);
41
42 char* makePythonSafeWithPrefix(const std::string& name, const std::string& prefix) const;
43 void makeBufferPythonSafe(char* buffer) const;
44 char* makeEscapeSafe(const std::string& input) const;
45 bool strncmp(const char* a, const char* b, const size_t n) const;
46 bool isMultiLine(const char* check) const;
47 bool isMultiLine(const std::string& check) const;
48
49private:
50 ConfigGraph* graph_;
51 std::map<LinkId_t, std::string> link_map_;
52 std::string py_parent_name_;
53 std::map<StatisticId_t, std::string> shared_stat_map_;
54};
55
56} // namespace SST::Core
57
58#endif // SST_CORE_PYTHON_CONFIG_OUTPUT_H
Represents the configuration of a generic component.
Definition configGraph.h:263
A Configuration Graph A graph representing Components and Links.
Definition configGraph.h:450
Definition configGraph.h:175
Class to contain SST Simulation Configuration variables.
Definition config.h:41
virtual void generate(const Config *cfg, ConfigGraph *graph) override
Definition pythonConfigOutput.cc:252
Parameter store.
Definition params.h:58