VTK  9.5.20251215
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
22
23#ifndef vtkResourceFileLocator_h
24#define vtkResourceFileLocator_h
25
26#include "vtkCommonMiscModule.h" // For export macro
27#include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_6_0
28#include "vtkObject.h"
29
30#include <string> // needed for std::string
31#include <vector> // needed for std::vector
32
33VTK_ABI_NAMESPACE_BEGIN
34class VTKCOMMONMISC_EXPORT vtkResourceFileLocator : public vtkObject
35{
36public:
39 void PrintSelf(ostream& os, vtkIndent indent) override;
40
42
46 vtkSetMacro(LogVerbosity, int);
47 vtkGetMacro(LogVerbosity, int);
49
55 virtual std::string Locate(const std::string& anchor, const std::string& landmark,
56 const std::string& defaultDir = std::string());
57
66 virtual std::string Locate(const std::string& anchor,
67 const std::vector<std::string>& landmark_prefixes, const std::string& landmark,
68 const std::string& defaultDir = std::string());
69
73 static VTK_FILEPATH std::string GetLibraryPathForAddress(const void* ptr);
74
79
81
89 VTK_DEPRECATED_IN_9_6_0("Use GetLibraryPathForAddress() instead")
90 static VTK_FILEPATH std::string GetLibraryPathForSymbolUnix(const char* symbolname);
91 VTK_DEPRECATED_IN_9_6_0("Use GetLibraryPathForAddress() instead")
92 static VTK_FILEPATH std::string GetLibraryPathForSymbolWin32(const void* fptr);
94
95protected:
98
99private:
101 void operator=(const vtkResourceFileLocator&) = delete;
102
103 int LogVerbosity;
104};
105
106#define vtkGetLibraryPathForSymbol(function) \
107 vtkResourceFileLocator::GetLibraryPathForAddress(reinterpret_cast<const void*>(&function))
108
109VTK_ABI_NAMESPACE_END
110#endif
a simple class to control print indentation
Definition vtkIndent.h:108
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.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkResourceFileLocator * New()
static std::string GetCurrentExecutablePath()
Return the path to the current executable.
static std::string GetLibraryPathForSymbolUnix(const char *symbolname)
Returns the name of the library providing the symbol.
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...
static std::string GetLibraryPathForAddress(const void *ptr)
Return the path to the library containing the given pointer.
static std::string GetLibraryPathForSymbolWin32(const void *fptr)
Returns the name of the library providing the symbol.
#define VTK_DEPRECATED_IN_9_6_0(reason)
#define VTK_FILEPATH