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