haiku/headers/os/storage/PathFinder.h
Ingo Weinhold 60b39cd741 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.
2013-11-17 02:09:36 +01:00

72 lines
2.0 KiB
C++

/*
* Copyright 2013, Haiku Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _PATH_FINDER_H
#define _PATH_FINDER_H
#include <FindDirectory.h>
#include <String.h>
class BPath;
class BStringList;
struct entry_ref;
class BPathFinder {
public:
BPathFinder(const void* codePointer = NULL,
const char* dependency = NULL);
BPathFinder(const char* path,
const char* dependency = NULL);
BPathFinder(const entry_ref& ref,
const char* dependency = NULL);
status_t SetTo(const void* codePointer = NULL,
const char* dependency = NULL);
status_t SetTo(const char* path,
const char* dependency = NULL);
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);
status_t FindPath(path_base_directory baseDirectory,
const char* subPath, BPath& path);
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);
static status_t FindPaths(path_base_directory baseDirectory,
const char* subPath, BStringList& paths);
static status_t FindPaths(path_base_directory baseDirectory,
BStringList& paths);
private:
status_t _SetTo(const void* codePointer,
const char* path, const char* dependency);
private:
const void* fCodePointer;
BString fPath;
BString fDependency;
status_t fInitStatus;
uint32 fReserved[4];
};
#endif // _PATH_FINDER_H