mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-06-27 20:47:11 +02:00
bin
cbp
config
external
include
modules
shared
source
Base
Entity
Library
Chrono
Crypt
IO
System
Environment.cpp
Environment.hpp
Path.cpp
Path.hpp
Utils
Chrono.cpp
Chrono.hpp
Crypt.cpp
Crypt.hpp
Format.cpp
Format.hpp
IO.cpp
IO.hpp
Math.cpp
Math.hpp
Numeric.cpp
Numeric.hpp
Random.cpp
Random.hpp
Shared.cpp
Shared.hpp
String.cpp
String.hpp
System.cpp
System.hpp
Utils.cpp
Utils.hpp
Misc
Command.cpp
Command.hpp
Constants.cpp
Core.cpp
Core.hpp
CoreEntity.cpp
CoreEvents.cpp
CoreFuncs.cpp
CoreUtils.cpp
Exports.cpp
Logger.cpp
Logger.hpp
Main.cpp
Register.cpp
Routine.cpp
Routine.hpp
SqBase.hpp
.gitignore
LICENSE
README.md
317 lines
13 KiB
C++
317 lines
13 KiB
C++
#ifndef _LIBRARY_SYSENV_HPP_
|
|
#define _LIBRARY_SYSENV_HPP_
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
#include "Base/Shared.hpp"
|
|
#include "Base/Buffer.hpp"
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
namespace SqMod {
|
|
|
|
/* ------------------------------------------------------------------------------------------------
|
|
* This class provides access to environment variables and some general system information.
|
|
*/
|
|
struct SysEnv
|
|
{
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Default constructor. (disabled)
|
|
*/
|
|
SysEnv() = delete;
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Copy constructor. (disabled)
|
|
*/
|
|
SysEnv(const SysEnv &) = delete;
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Move constructor. (disabled)
|
|
*/
|
|
SysEnv(SysEnv &&) = delete;
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Destructor. (disabled)
|
|
*/
|
|
~SysEnv() = delete;
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Copy assignment operator. (disabled)
|
|
*/
|
|
SysEnv & operator = (const SysEnv &) = delete;
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Move assignment operator. (disabled)
|
|
*/
|
|
SysEnv & operator = (SysEnv &&) = delete;
|
|
|
|
public:
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns true if an environment variable with the given name is defined.
|
|
*/
|
|
static bool Has(CCStr name);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns true if an environment variable with the given name is defined.
|
|
*/
|
|
static bool Has(const String & name);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the value of the environment variable with the given name.
|
|
* If the environment variable is undefined, returns fallback value instead.
|
|
*/
|
|
static void Get(Buffer & b, CCStr name, CCStr fallback);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the value of the environment variable with the given name.
|
|
*/
|
|
static Buffer Get(CCStr name)
|
|
{
|
|
return Get(name, nullptr);
|
|
}
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the value of the environment variable with the given name.
|
|
*/
|
|
static Buffer Get(const String & name)
|
|
{
|
|
return Get(name.c_str(), nullptr);
|
|
}
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the value of the environment variable with the given name.
|
|
* If the environment variable is undefined, returns fallback value instead.
|
|
*/
|
|
static Buffer Get(CCStr name, CCStr fallback);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the value of the environment variable with the given name.
|
|
* If the environment variable is undefined, returns fallback value instead.
|
|
*/
|
|
static Buffer Get(CCStr name, const String & fallback)
|
|
{
|
|
return Get(name, fallback.c_str());
|
|
}
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the value of the environment variable with the given name.
|
|
* If the environment variable is undefined, returns fallback value instead.
|
|
*/
|
|
static Buffer Get(const String & name, CCStr fallback)
|
|
{
|
|
return Get(name.c_str(), fallback);
|
|
}
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the value of the environment variable with the given name.
|
|
* If the environment variable is undefined, returns fallback value instead.
|
|
*/
|
|
static Buffer Get(const String & name, const String & fallback)
|
|
{
|
|
return Get(name.c_str(), fallback.c_str());
|
|
}
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Sets the environment variable with the given name to the given value.
|
|
*/
|
|
static bool Set(CCStr name, CCStr value);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Sets the environment variable with the given name to the given value.
|
|
*/
|
|
static bool Set(const String & name, const String & value);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the operating system name.
|
|
*/
|
|
static String OSName();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the operating system name in a more "user-friendly" way. This only affects Windows.
|
|
*/
|
|
static String OSDisplayName();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the operating system version.
|
|
*/
|
|
static String OSVersion();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the operating system architecture.
|
|
*/
|
|
static String OSArchitecture();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the node (or host) name.
|
|
*/
|
|
static String NodeName();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Returns the number of processors installed in the system. If the number of processors
|
|
* cannot be determined, returns 1.
|
|
*/
|
|
static Uint32 ProcessorCount();
|
|
|
|
protected:
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Make sure that the path in the specified buffer contains a trailing slash.
|
|
*/
|
|
static void TerminatePath(Buffer & b);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Expands all environment variables contained in the string.
|
|
*/
|
|
static void ExpandVars(Buffer & b, CCStr pos, CCStr end);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Expands all environment variables contained in the path. Uses the Unix variable style.
|
|
*/
|
|
static void ExpandPath(Buffer & b, CCStr pos, CCStr end);
|
|
|
|
public:
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Expands all environment variables contained in the string.
|
|
*/
|
|
static void ExpandVars(Buffer & b, CCStr str);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Expands all environment variables contained in the string.
|
|
*/
|
|
static void ExpandVars(Buffer & b, const String & str);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Expands all environment variables contained in the string.
|
|
*/
|
|
static Buffer ExpandVars(CCStr str);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Expands all environment variables contained in the string.
|
|
*/
|
|
static Buffer ExpandVars(const String & str);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Expands all environment variables contained in the path. Uses the Unix variable style.
|
|
*/
|
|
static void ExpandPath(Buffer & b, CCStr path);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Expands all environment variables contained in the path. Uses the Unix variable style.
|
|
*/
|
|
static void ExpandPath(Buffer & b, const String & path);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Expands all environment variables contained in the path. Uses the Unix variable style.
|
|
*/
|
|
static Buffer ExpandPath(CCStr path);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Expands all environment variables contained in the path. Uses the Unix variable style.
|
|
*/
|
|
static Buffer ExpandPath(const String & path);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the current working directory within the specified buffer.
|
|
*/
|
|
static void WorkingDir(Buffer & b);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the current working directory within a buffer and return it.
|
|
*/
|
|
static Buffer WorkingDir();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the user's home directory within the specified buffer.
|
|
*/
|
|
static void HomeDir(Buffer & b);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the user's home directory within a buffer and return it.
|
|
*/
|
|
static Buffer HomeDir();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the user's config directory within the specified buffer.
|
|
*/
|
|
static void ConfigHomeDir(Buffer & b);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the user's config directory within a buffer and return it.
|
|
*/
|
|
static Buffer ConfigHomeDir();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the user's data directory within the specified buffer.
|
|
*/
|
|
static void DataHomeDir(Buffer & b);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the user's data directory within a buffer and return it.
|
|
*/
|
|
static Buffer DataHomeDir();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the user's temporary directory within the specified buffer.
|
|
*/
|
|
static void TempHomeDir(Buffer & b);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the user's temporary directory within a buffer and return it.
|
|
*/
|
|
static Buffer TempHomeDir();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the user's cache directory within the specified buffer.
|
|
*/
|
|
static void CacheHomeDir(Buffer & b);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the user's cache directory within a buffer and return it.
|
|
*/
|
|
static Buffer CacheHomeDir();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the temporary directory within the specified buffer.
|
|
*/
|
|
static void TempDir(Buffer & b);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the temporary directory within a buffer and return it.
|
|
*/
|
|
static Buffer TempDir();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the systemwide config directory within the specified buffer.
|
|
*/
|
|
static void ConfigDir(Buffer & b);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the systemwide config directory within a buffer and return it.
|
|
*/
|
|
static Buffer ConfigDir();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the system directory within the specified buffer.
|
|
*/
|
|
static void SystemDir(Buffer & b);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the system directory within a buffer and return it.
|
|
*/
|
|
static Buffer SystemDir();
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the null directory within the specified buffer.
|
|
*/
|
|
static void NullDir(Buffer & b);
|
|
|
|
/* --------------------------------------------------------------------------------------------
|
|
* Obtain the null directory within a buffer and return it.
|
|
*/
|
|
static Buffer NullDir();
|
|
};
|
|
|
|
} // Namespace:: SqMod
|
|
|
|
#endif // _LIBRARY_SYSENV_HPP_
|