SST  13.1.0
Structural Simulation Toolkit
envquery.h
1 // Copyright 2009-2023 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-2023, 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 #ifndef SST_CORE_ENV_ENVQUERY_H
13 #define SST_CORE_ENV_ENVQUERY_H
14 
15 #include "sst_config.h"
16 
17 #include "sst/core/env/envconfig.h"
18 
19 #include <cstdio>
20 #include <cstdlib>
21 #include <cstring>
22 #include <iostream>
23 #include <string>
24 #include <vector>
25 
26 namespace SST {
27 namespace Core {
28 namespace Environment {
29 
30 /**
31 Reads the next new-line delimited entry in a file and put
32 into the buffer provided. The user is responsible for ensuring
33 that the buffer is of an appropriate length.
34 */
35 void configReadLine(FILE* theFile, char* lineBuffer);
36 
37 /**
38 Opens a configuration file specified and populates an
39 EnvironmentConfiguration instance with the contents.
40 */
41 void populateEnvironmentConfig(const std::string& path, EnvironmentConfiguration* cfg, bool errorOnNotOpen);
42 
43 /**
44 Uses an already open file, reads the contents and populates an instance
45 of an EnvironmentConfiguration with the contents
46 */
47 void populateEnvironmentConfig(FILE* configFile, EnvironmentConfiguration* cfg, bool errorOnNotOpen);
48 
49 /**
50 Provides an SST-guaranteed precedence ordering loading of configuration
51 files. The user can supply an override list of file paths which should
52 take precedence over the default configuration locations.
53 */
54 EnvironmentConfiguration* getSSTEnvironmentConfiguration(const std::vector<std::string>& overridePaths);
55 
56 } // namespace Environment
57 } // namespace Core
58 } // namespace SST
59 
60 #endif // SST_CORE_ENV_ENVQUERY_H