0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-13 21:41:06 +01:00
construct/include/ircd/mods/paths.h

51 lines
1.2 KiB
C
Raw Normal View History

2018-03-24 05:40:20 +01:00
// 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);
2018-03-24 05:40:20 +01:00
}
/// 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
2018-03-24 05:40:20 +01:00
{
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;
2018-03-24 05:40:20 +01:00
bool del(const string_view &dir);
bool add(const string_view &dir, std::nothrow_t);
bool add(const string_view &dir);
2018-03-24 05:40:20 +01:00
paths();
};