Add get_*architecture() API, extend find_path*() API

* Add get_architecture(), get_primary_architecture(),
  get_secondary_architectures(), guess_architecture_for_path() to get
  the caller's architecture, the primary architecture, all secondary
  architectures, or the architecture associated with a specified path
  respectively.
* Rename the find_path*() functions to find_path*_etc() and add an
  optional architecture parameter. Add simplified find_path*()
  functions.
* BPathFinder: Add FindPath[s]() versions with an architecture
  parameter.
This commit is contained in:
Ingo Weinhold
2013-11-17 02:09:36 +01:00
parent cf7e2ad812
commit 60b39cd741
9 changed files with 537 additions and 55 deletions
+17 -7
View File
@@ -170,16 +170,26 @@ extern "C" {
status_t find_directory(directory_which which, dev_t volume, bool createIt,
char* pathString, int32 length);
status_t find_path(const void* codePointer, const char* dependency,
path_base_directory baseDirectory, const char* subPath, uint32 flags,
char* pathBuffer, size_t bufferSize);
status_t find_path(const void* codePointer, path_base_directory baseDirectory,
const char* subPath, char* pathBuffer, size_t bufferSize);
status_t find_path_for_path(const char* path, const char* dependency,
path_base_directory baseDirectory, const char* subPath, uint32 flags,
char* pathBuffer, size_t bufferSize);
status_t find_path_etc(const void* codePointer, const char* dependency,
const char* architecture, path_base_directory baseDirectory,
const char* subPath, uint32 flags, char* pathBuffer, size_t bufferSize);
status_t find_path_for_path(const char* path, path_base_directory baseDirectory,
const char* subPath, char* pathBuffer, size_t bufferSize);
status_t find_path_for_path_etc(const char* path, const char* dependency,
const char* architecture, path_base_directory baseDirectory,
const char* subPath, uint32 flags, char* pathBuffer, size_t bufferSize);
status_t find_paths(path_base_directory baseDirectory, const char* subPath,
uint32 flags, char*** _paths, size_t* _pathCount);
char*** _paths, size_t* _pathCount);
status_t find_paths_etc(const char* architecture,
path_base_directory baseDirectory, const char* subPath, uint32 flags,
char*** _paths, size_t* _pathCount);
#ifdef __cplusplus
+8
View File
@@ -31,6 +31,10 @@ public:
status_t SetTo(const entry_ref& ref,
const char* dependency = NULL);
status_t FindPath(const char* architecture,
path_base_directory baseDirectory,
const char* subPath, uint32 flags,
BPath& path);
status_t FindPath(path_base_directory baseDirectory,
const char* subPath, uint32 flags,
BPath& path);
@@ -39,6 +43,10 @@ public:
status_t FindPath(path_base_directory baseDirectory,
BPath& path);
static status_t FindPaths(const char* architecture,
path_base_directory baseDirectory,
const char* subPath, uint32 flags,
BStringList& paths);
static status_t FindPaths(path_base_directory baseDirectory,
const char* subPath, uint32 flags,
BStringList& paths);