mirror of
https://github.com/matrix-construct/construct
synced 2024-11-16 06:51:08 +01:00
50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
// Matrix Construct
|
|
//
|
|
// Copyright (C) Matrix Construct Developers, Authors & Contributors
|
|
// Copyright (C) 2016-2018 Jason Volk <jason@zemos.net>
|
|
//
|
|
// Permission to use, copy, modify, and/or distribute this software for any
|
|
// purpose with or without fee is hereby granted, provided that the above
|
|
// copyright notice and this permission notice is present in all copies. The
|
|
// full license for this software is available in the LICENSE file.
|
|
|
|
#pragma once
|
|
#define HAVE_IRCD_MODS_PATHS_H
|
|
|
|
namespace ircd::mods
|
|
{
|
|
struct paths extern paths;
|
|
|
|
// Platform (.so|.dll) postfixing
|
|
std::string postfixed(std::string);
|
|
std::string unpostfixed(std::string);
|
|
std::string prefix_if_relative(std::string);
|
|
}
|
|
|
|
/// Search paths vector for modules. These directories will be searched
|
|
/// when a relative path/name is given to various other places in the
|
|
/// ircd::mods interface.
|
|
///
|
|
class ircd::mods::paths
|
|
{
|
|
std::vector<std::string> p;
|
|
|
|
public:
|
|
auto begin() const
|
|
{
|
|
return p.begin();
|
|
}
|
|
|
|
auto end() const
|
|
{
|
|
return p.end();
|
|
}
|
|
|
|
bool added(const string_view &dir) const;
|
|
|
|
bool del(const string_view &dir);
|
|
bool add(const string_view &dir, std::nothrow_t);
|
|
bool add(const string_view &dir);
|
|
|
|
paths();
|
|
};
|