https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Attributes | List of all members
DataFileInterface Class Reference

Interface for objects that need to resolve data file paths (MooseObject and Action) More...

#include <DataFileInterface.h>

Inheritance diagram for DataFileInterface:
[legend]

Public Types

using DataFileParameterType = DataFileName
 The parameter type this interface expects for a data file name.
 

Public Member Functions

 DataFileInterface (const ParallelParamObject &parent)
 Constructing the object.
 
std::string getDataFileName (const std::string &param) const
 Deprecated method.
 
std::string getDataFileNameByName (const std::string &relative_path) const
 Deprecated method.
 
std::string getDataFilePath (const std::string &relative_path) const
 Returns the path of a data file for a given relative file path.
 

Private Attributes

const ParallelParamObject_parent
 

Detailed Description

Interface for objects that need to resolve data file paths (MooseObject and Action)

Definition at line 21 of file DataFileInterface.h.

Member Typedef Documentation

◆ DataFileParameterType

The parameter type this interface expects for a data file name.

Definition at line 27 of file DataFileInterface.h.

Constructor & Destructor Documentation

◆ DataFileInterface()

DataFileInterface::DataFileInterface ( const ParallelParamObject parent)

Constructing the object.

Parameters
parentParent object (either MooseObject or Action) for params and output

Definition at line 18 of file DataFileInterface.C.

18: _parent(parent) {}
const ParallelParamObject & _parent

Member Function Documentation

◆ getDataFileName()

std::string DataFileInterface::getDataFileName ( const std::string &  param) const

Deprecated method.

The data file paths are now automatically set within the InputParameters object, so using getParam<DataFileName>("param_name") is now sufficient.

Definition at line 21 of file DataFileInterface.C.

22{
23 _parent.mooseDeprecated("getDataFileName() is deprecated. The file path is now directly set "
24 "within the InputParameters.\nUse getParam<DataFileName>(\"",
25 param,
26 "\") instead.");
27 return _parent.getParam<DataFileName>(param);
28}
void mooseDeprecated(Args &&... args) const
Emits a deprecation warning prefixed with the object name and type, and a stack trace.
Definition MooseBase.h:317
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition MooseBase.h:406

◆ getDataFileNameByName()

std::string DataFileInterface::getDataFileNameByName ( const std::string &  relative_path) const

Deprecated method.

Use getDataFilePath() instead.

Definition at line 31 of file DataFileInterface.C.

32{
33 _parent.mooseDeprecated("getDataFileNameByName() is deprecated. Use getDataFilePath(\"",
34 relative_path,
35 "\") instead.");
36 return getDataFilePath(relative_path);
37}
std::string getDataFilePath(const std::string &relative_path) const
Returns the path of a data file for a given relative file path.

◆ getDataFilePath()

std::string DataFileInterface::getDataFilePath ( const std::string &  relative_path) const

Returns the path of a data file for a given relative file path.

This can be used for hardcoded datafile names and will search the same locations as getDataFileName

Definition at line 40 of file DataFileInterface.C.

41{
42 // This should only ever be used with relative paths. There is no point to
43 // use this search path with an absolute path.
44 if (std::filesystem::path(relative_path).is_absolute())
45 _parent.mooseWarning("While using getDataFilePath(\"",
46 relative_path,
47 "\"): This API should not be used for absolute paths.");
48
49 // This will search the data paths for this relative path
50 std::optional<std::string> error;
52 {
53 // Throw on error so that if getPath() fails, we can throw an error
54 // with the context of _parent.mooseError()
55 Moose::ScopedThrowOnError scoped_throw_on_error;
56
57 try
58 {
59 found_path = Moose::DataFileUtils::getPath(relative_path);
60 }
61 catch (std::exception & e)
62 {
63 error = e.what();
64 }
65 }
66
67 if (error)
68 _parent.mooseError(*error);
69
70 mooseAssert(found_path.context == Moose::DataFileUtils::Context::DATA,
71 "Should only ever obtain data");
72 mooseAssert(found_path.data_name, "Should be set");
73
74 const std::string msg =
75 "Using data file '" + found_path.path + "' from " + *found_path.data_name + " data";
76 _parent.mooseInfo(msg);
77
78 return found_path.path;
79}
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Definition MooseBase.h:271
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
Definition MooseBase.h:299
void mooseInfo(Args &&... args) const
Definition MooseBase.h:334
Scoped helper for setting Moose::_throw_on_error during this scope.
Definition Moose.h:298
@ DATA
From installed/in-tree data.
Path getPath(std::string path, const GetPathOptions &options={})
Get the data path for a given path, searching the registered data.
Representation of a data file path.
std::optional< std::string > data_name
The name of the data registry the file came from (with context == DATA)
Context context
Context for the file (where it came from)

Referenced by getDataFileNameByName().

Member Data Documentation

◆ _parent

const ParallelParamObject& DataFileInterface::_parent
private

Definition at line 58 of file DataFileInterface.h.

Referenced by getDataFileName(), getDataFileNameByName(), and getDataFilePath().


The documentation for this class was generated from the following files: