Helper class for finding config files and other external resources. More...
#include <yarp/os/ResourceFinder.h>
Classes | |
class | Private |
Public Member Functions | |
ResourceFinder () | |
ResourceFinder (const ResourceFinder &alt) | |
virtual | ~ResourceFinder () |
const ResourceFinder & | operator= (const ResourceFinder &alt) |
bool | configure (int argc, char *argv[], bool skipFirstArgument=true) |
Sets up the ResourceFinder. | |
bool | setDefaultContext (const std::string &contextName) |
Sets the context for the current ResourceFinder object. | |
bool | setDefault (const std::string &key, const std::string &val) |
Provide a default value for a given key. | |
bool | setDefault (const std::string &key, std::int32_t val) |
Provide a default value for a given key. | |
bool | setDefault (const std::string &key, yarp::conf::float64_t val) |
Provide a default value for a given key. | |
bool | setDefault (const std::string &key, const yarp::os::Value &val) |
Provide a default value for a given key. | |
bool | setDefaultConfigFile (const std::string &fname) |
Provide a default value for the configuration file (can be overridden from command line with the –from argument) | |
std::string | findFile (const std::string &name) |
Find the full path to a file. | |
std::string | findFileByName (const std::string &name) |
Find the full path to a file. | |
std::string | findPath (const std::string &name) |
Expand a partial path to a full path. | |
yarp::os::Bottle | findPaths (const std::string &name) |
Expand a partial path to a list of paths. | |
std::string | findPath () |
Find the first existing directory in the search path. | |
std::string | getContext () |
Return the default "context" or "application name" used in searching for configuration files. | |
yarp::os::Bottle | getContexts () |
Return the full stack of contexts used in searching for configuration files. | |
bool | check (const std::string &key) const override |
Check if there exists a property of the given name. | |
Value & | find (const std::string &key) const override |
Gets a value corresponding to a given keyword. | |
Bottle & | findGroup (const std::string &key) const override |
Gets a list corresponding to a given keyword. | |
bool | isNull () const override |
Checks if the object is invalid. | |
std::string | toString () const override |
Return a standard text representation of the content of the object. | |
virtual ResourceFinder | findNestedResourceFinder (const std::string &key) |
Gets a section as a ResourceFinder object, retaining the context and configuration of the current ResourceFinder. | |
bool | isConfigured () const |
std::string | getHomeContextPath () |
Return the path to the "user" context directory for the current context. | |
std::string | getHomeRobotPath () |
Return the path to the "user" robot directory. | |
yarp::os::Bottle | findPaths (const std::string &name, const ResourceFinderOptions &options) |
std::string | findPath (const std::string &name, const ResourceFinderOptions &options) |
std::string | findFile (const std::string &name, const ResourceFinderOptions &options) |
std::string | findFileByName (const std::string &name, const ResourceFinderOptions &options) |
bool | readConfig (Property &config, const std::string &key, const ResourceFinderOptions &options) |
bool | setVerbose (bool verbose=true) |
Request that information be printed to the console on how resources are being found. | |
bool | setQuiet (bool quiet=true) |
Request that information be suppressed from the console. | |
virtual bool | check (const std::string &key) const=0 |
Check if there exists a property of the given name. | |
virtual bool | check (const std::string &key, const std::string &comment) const |
Check if there exists a property of the given name. | |
virtual bool | check (const std::string &key, Value *&result, const std::string &comment="") const |
Gets a value corresponding to a given keyword. | |
virtual Value | check (const std::string &key, const Value &fallback, const std::string &comment="") const |
Gets a value corresponding to a given keyword. | |
virtual Bottle & | findGroup (const std::string &key) const=0 |
Gets a list corresponding to a given keyword. | |
Bottle & | findGroup (const std::string &key, const std::string &comment) const |
Gets a list corresponding to a given keyword. | |
Public Member Functions inherited from yarp::os::Searchable | |
Searchable () | |
Default constructor. | |
Searchable (const Searchable &rhs)=default | |
Copy constructor. | |
Searchable (Searchable &&rhs) noexcept=default | |
Move constructor. | |
virtual | ~Searchable () |
Destructor. | |
Searchable & | operator= (const Searchable &rhs)=default |
Copy assignment operator. | |
Searchable & | operator= (Searchable &&rhs) noexcept=default |
Move assignment operator. | |
Bottle & | findGroup (const std::string &key, const std::string &comment) const |
Gets a list corresponding to a given keyword. | |
Static Public Member Functions | |
static ResourceFinder & | getResourceFinderSingleton () |
Access a ResourceFinder singleton whose lifetime will match that of the YARP library. | |
Helper class for finding config files and other external resources.
More details on this class behaviour can be found in ResourceFinder Tutorials and Specification.
Definition at line 28 of file ResourceFinder.h.
ResourceFinder::ResourceFinder | ( | ) |
Definition at line 730 of file ResourceFinder.cpp.
ResourceFinder::ResourceFinder | ( | const ResourceFinder & | alt | ) |
Definition at line 741 of file ResourceFinder.cpp.
|
virtual |
Definition at line 767 of file ResourceFinder.cpp.
Check if there exists a property of the given name.
key | the name to check for |
Implements yarp::os::Searchable.
Definition at line 903 of file ResourceFinder.cpp.
Check if there exists a property of the given name.
key | the name to check for |
Implements yarp::os::Searchable.
|
virtual |
Check if there exists a property of the given name.
key | the name to check for |
comment | Human-readable explanation |
Reimplemented from yarp::os::Searchable.
Definition at line 79 of file Searchable.cpp.
|
virtual |
Gets a value corresponding to a given keyword.
key | The keyword to look for |
fallback | A default value to return if nothing found |
comment | Optional human-readable explanation |
Reimplemented from yarp::os::Searchable.
Definition at line 156 of file Searchable.cpp.
|
virtual |
Gets a value corresponding to a given keyword.
If a property does not exist, this returns false and does not modify the result pointer. If a property exists but does not have a value, this again returns false and does not modify the result pointer.
key | The keyword to look for |
result | A pointer to store the address of the result in |
comment | Optional human-readable explanation |
Reimplemented from yarp::os::Searchable.
Definition at line 142 of file Searchable.cpp.
Sets up the ResourceFinder.
Definition at line 786 of file ResourceFinder.cpp.
Gets a value corresponding to a given keyword.
key | The keyword to look for |
Implements yarp::os::Searchable.
Definition at line 909 of file ResourceFinder.cpp.
std::string ResourceFinder::findFile | ( | const std::string & | name | ) |
Find the full path to a file.
The file is specified by the name of a key. The value of the key should be set up either on the command line, through a loaded config file, or by a call to setDefault.
If all else fails, findFile will try interpreting key as a file name - this is for backwards compatibility and is behavior that will probably go away - don't depend on it!
The file is searched in a hierarchy of paths as defined in ResourceFinder Tutorials and Specification.
Definition at line 830 of file ResourceFinder.cpp.
std::string ResourceFinder::findFile | ( | const std::string & | name, |
const ResourceFinderOptions & | options | ||
) |
Definition at line 836 of file ResourceFinder.cpp.
std::string ResourceFinder::findFileByName | ( | const std::string & | name | ) |
Find the full path to a file.
The name of the file is provided explicitly.
The file is searched in a hierarchy of paths as defined in ResourceFinder Tutorials and Specification.
Definition at line 843 of file ResourceFinder.cpp.
std::string ResourceFinder::findFileByName | ( | const std::string & | name, |
const ResourceFinderOptions & | options | ||
) |
Definition at line 849 of file ResourceFinder.cpp.
Gets a list corresponding to a given keyword.
key | The keyword to look for |
Implements yarp::os::Searchable.
Definition at line 915 of file ResourceFinder.cpp.
Gets a list corresponding to a given keyword.
key | The keyword to look for |
Implements yarp::os::Searchable.
yarp::os::Bottle & yarp::os::Searchable::findGroup | ( | const std::string & | key, |
const std::string & | comment | ||
) | const |
Gets a list corresponding to a given keyword.
key | The keyword to look for |
comment | Human-readable explanation |
Definition at line 115 of file Searchable.cpp.
|
virtual |
Gets a section as a ResourceFinder object, retaining the context and configuration of the current ResourceFinder.
This is a thin wrapper around the Searchable::findGroup method.
key | The section to look for |
Definition at line 953 of file ResourceFinder.cpp.
std::string ResourceFinder::findPath | ( | ) |
Find the first existing directory in the search path.
Definition at line 883 of file ResourceFinder.cpp.
std::string ResourceFinder::findPath | ( | const std::string & | name | ) |
Expand a partial path to a full path.
The path is specified by the name of a key. The value of the key should be set up either on the command line, through a loaded config file, or by a call to setDefault.
If all else fails, findPath will try interpreting key as a path - this is for backwards compatibility and is behavior that will probably go away - don't depend on it!
The path is searched in a hierarchy of paths as defined in ResourceFinder Tutorials and Specification.
Definition at line 857 of file ResourceFinder.cpp.
std::string ResourceFinder::findPath | ( | const std::string & | name, |
const ResourceFinderOptions & | options | ||
) |
Definition at line 863 of file ResourceFinder.cpp.
yarp::os::Bottle ResourceFinder::findPaths | ( | const std::string & | name | ) |
Expand a partial path to a list of paths.
Like findPath(key), but continues on to find all instances of the path.
so findPaths("app") would return ["/foo/app", "/bar/app", ...] depending on the search path in effect. The first path is the list comes from the highest-priority location, and would be the path returned by findPath("app")
The path is searched in a hierarchy of paths as defined in ResourceFinder Tutorials and Specification.
Definition at line 870 of file ResourceFinder.cpp.
yarp::os::Bottle ResourceFinder::findPaths | ( | const std::string & | name, |
const ResourceFinderOptions & | options | ||
) |
Definition at line 876 of file ResourceFinder.cpp.
std::string ResourceFinder::getContext | ( | ) |
Return the default "context" or "application name" used in searching for configuration files.
The context is a keyword that is converted into a search path in a policy-specific way.
Definition at line 932 of file ResourceFinder.cpp.
Bottle ResourceFinder::getContexts | ( | ) |
Return the full stack of contexts used in searching for configuration files.
Definition at line 947 of file ResourceFinder.cpp.
std::string ResourceFinder::getHomeContextPath | ( | ) |
Return the path to the "user" context directory for the current context.
Definition at line 937 of file ResourceFinder.cpp.
std::string ResourceFinder::getHomeRobotPath | ( | ) |
Return the path to the "user" robot directory.
Definition at line 942 of file ResourceFinder.cpp.
|
static |
Access a ResourceFinder singleton whose lifetime will match that of the YARP library.
Definition at line 959 of file ResourceFinder.cpp.
|
inline |
Definition at line 212 of file ResourceFinder.h.
|
overridevirtual |
Checks if the object is invalid.
Reimplemented from yarp::os::Searchable.
Definition at line 921 of file ResourceFinder.cpp.
const ResourceFinder & ResourceFinder::operator= | ( | const ResourceFinder & | alt | ) |
Definition at line 774 of file ResourceFinder.cpp.
bool ResourceFinder::readConfig | ( | Property & | config, |
const std::string & | key, | ||
const ResourceFinderOptions & | options | ||
) |
Definition at line 965 of file ResourceFinder.cpp.
Provide a default value for a given key.
The provided val
will be converted to a yarp::os::Value, so also string representations for lists and numerical values are accepted.
Definition at line 808 of file ResourceFinder.cpp.
bool ResourceFinder::setDefault | ( | const std::string & | key, |
const yarp::os::Value & | val | ||
) |
Provide a default value for a given key.
Definition at line 825 of file ResourceFinder.cpp.
Provide a default value for a given key.
The provided val
will be converted to a 32-bit integer yarp::os::Value.
Definition at line 815 of file ResourceFinder.cpp.
bool ResourceFinder::setDefault | ( | const std::string & | key, |
yarp::conf::float64_t | val | ||
) |
Provide a default value for a given key.
The provided val
will be converted to a 64-bit floating point yarp::os::Value.
Definition at line 820 of file ResourceFinder.cpp.
Provide a default value for the configuration file (can be overridden from command line with the –from argument)
Definition at line 103 of file ResourceFinder.h.
Sets the context for the current ResourceFinder object.
contextName | The name of the context |
Definition at line 60 of file ResourceFinder.h.
Request that information be suppressed from the console.
By default ResourceFinder will print messages if it fails to find files, for example.
quiet | suppress printing of information |
Definition at line 896 of file ResourceFinder.cpp.
Request that information be printed to the console on how resources are being found.
This is especially useful to understand why resources are not found or the wrong resource is picked up.
verbose | set/suppress printing of information |
Definition at line 890 of file ResourceFinder.cpp.
|
overridevirtual |
Return a standard text representation of the content of the object.
The representation is readable by the Bottle and Property classes.
Implements yarp::os::Searchable.
Definition at line 927 of file ResourceFinder.cpp.