VTK  9.3.0
vtkResourceFileLocator.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
23#ifndef vtkResourceFileLocator_h
24#define vtkResourceFileLocator_h
25
26#include "vtkCommonMiscModule.h" // For export macro
27#include "vtkObject.h"
28
29#include <string> // needed for std::string
30#include <vector> // needed for std::vector
31
32VTK_ABI_NAMESPACE_BEGIN
33class VTKCOMMONMISC_EXPORT vtkResourceFileLocator : public vtkObject
34{
35public:
38 void PrintSelf(ostream& os, vtkIndent indent) override;
39
41
45 vtkSetMacro(LogVerbosity, int);
46 vtkGetMacro(LogVerbosity, int);
48
50
55 virtual std::string Locate(const std::string& anchor, const std::string& landmark,
56 const std::string& defaultDir = std::string());
58
60
68 virtual std::string Locate(const std::string& anchor,
69 const std::vector<std::string>& landmark_prefixes, const std::string& landmark,
70 const std::string& defaultDir = std::string());
72
74
82 static VTK_FILEPATH std::string GetLibraryPathForSymbolUnix(const char* symbolname);
83 static VTK_FILEPATH std::string GetLibraryPathForSymbolWin32(const void* fptr);
85
86protected:
89
90private:
92 void operator=(const vtkResourceFileLocator&) = delete;
93
94 int LogVerbosity;
95};
96
97#if defined(_WIN32) && !defined(__CYGWIN__)
98#define vtkGetLibraryPathForSymbol(function) \
99 vtkResourceFileLocator::GetLibraryPathForSymbolWin32(reinterpret_cast<const void*>(&function))
100#else
101#define vtkGetLibraryPathForSymbol(function) \
102 vtkResourceFileLocator::GetLibraryPathForSymbolUnix(#function)
103#endif
104
105VTK_ABI_NAMESPACE_END
106#endif
a simple class to control print indentation
Definition vtkIndent.h:29
abstract base class for most VTK objects
Definition vtkObject.h:49
utility to locate resource files.
virtual std::string Locate(const std::string &anchor, const std::string &landmark, const std::string &defaultDir=std::string())
Given a starting anchor directory, look for the landmark file relative to the anchor.
~vtkResourceFileLocator() override
static VTK_FILEPATH std::string GetLibraryPathForSymbolUnix(const char *symbolname)
Returns the name of the library providing the symbol.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static VTK_FILEPATH std::string GetLibraryPathForSymbolWin32(const void *fptr)
Returns the name of the library providing the symbol.
static vtkResourceFileLocator * New()
virtual std::string Locate(const std::string &anchor, const std::vector< std::string > &landmark_prefixes, const std::string &landmark, const std::string &defaultDir=std::string())
This variant is used to look for landmark relative to the anchor using additional prefixes for the la...
#define VTK_FILEPATH