8#include "Arp/System/Core/Endianness.hpp" 
   15namespace Arp { 
namespace System { 
namespace Commons
 
   21    static const char*  ArpBinaryDirVariableName;
 
   24    static void         Setup(
void);
 
   25    static void         SetupSettings(
int core);
 
   26    static void         SetupSecuritySettings(
const String& securitySettingsPath);
 
   27    static void         SetupTrustStore(
const std::vector<String>& trustStorePaths, 
const String& trustStoreEditPath);
 
   28    static void         SetupIdentityStore(
const std::vector<String>& identityStorePaths, 
const String& identityStoreEditPath);
 
   29    static void         Dispose(
void);
 
   32    static int64        GetTickCount(
void);
 
   33    static Endianness   GetEndianness(
void);
 
   34    static String       GetVariable(
const char* variableName);
 
   36    static bool         GetVariableValue(
const char* variableName, T& result);
 
   37    static bool         GetVariableValue(
const char* variableName, 
String& value);
 
   39    static bool         GetDefaultVariableValue(
const char* variableName, T& result);
 
   40    static bool         GetDefaultVariableValue(
const char* variableName, 
String& value);
 
   42    static bool         AddVariable(
const char* variableName, 
const T& value);
 
   43    static bool         AddVariable(
const char* variableName, 
const String& value);
 
   45    static bool         AddOverriddenVariable(
const char* variableName, 
const T& value);
 
   46    static bool         AddOverriddenVariable(
const char* variableName, 
const String& value);
 
   47    static bool         SetVariable(
const char* variableName, 
const String& value);
 
   48    static void         LogVariables(
void);
 
   49    static void         RegisterEnvironmentVariables(
void);
 
   52    static bool         RegisterEnvironmentVariable(
const String& name, 
const char* value);
 
   61        using InstancePtr = std::unique_ptr<Instance>;
 
   62        using VariableNames = std::set<String>; 
 
   63        using EnvironmentVariables = std::map<String, String>; 
 
   69        static Instance&    CreateInstance(
void);
 
   70        static bool         IsCreated(
void);
 
   71        static void         DisposeInstance(
void);
 
   75        bool    AddDefaultVariable(
const char* variableName, 
const String& value);
 
   76        bool    AddOverriddenVariable(
const char* variableName, 
const String& value);
 
   77        bool    SetDefaultVariable(
const char* variableName, 
const String& value);
 
   78        bool    SetOverriddenVariable(
const char* variableName, 
const String& value);
 
   79        bool    GetCurrentVariableValue(
const char* variableName, 
const char*& pResult)
const;
 
   80        bool    GetDefaultVariableValue(
const char* variableName, 
const char*& pResult)
const;
 
   81        bool    GetOverriddenVariableValue(
const char* variableName, 
const char*& pResult)
const;
 
   84        void    GetVariableNames(VariableNames& result);
 
   85        void    LogVariables(
void);
 
   88        static bool GetVariableValueFrom(
const EnvironmentVariables& items, 
const char* variableName, 
const char*& pResult);
 
   91        EnvironmentVariables    environmentVariables;
 
   92        EnvironmentVariables    overriddenVariables;
 
   95        static InstancePtr instancePtr;
 
  103inline bool Environment::GetVariableValue<String>(
const char* variableName, 
String& result)
 
  105    return GetVariableValue(variableName, result);
 
  109inline bool Environment::GetVariableValue(
const char* variableName, T& result)
 
  112    if (!GetVariableValue(variableName, value))
 
  117    std::istringstream iss(value.
CStr());
 
  118    iss >> std::boolalpha >> result;
 
  123inline bool Environment::GetDefaultVariableValue<String>(
const char* variableName, String& result)
 
  125    return GetDefaultVariableValue(variableName, result);
 
  129inline bool Environment::GetDefaultVariableValue(
const char* variableName, T& result)
 
  132    if (!GetDefaultVariableValue(variableName, value))
 
  137    std::istringstream iss(value.CStr());
 
  138    iss >> std::boolalpha >> result;
 
  143inline bool Environment::AddVariable(
const char* variableName, 
const T& value)
 
  145    std::stringstream ss;
 
  146    ss << std::boolalpha << value;
 
  147    return Environment::AddVariable(variableName, String(ss.str()));
 
  151inline bool Environment::AddOverriddenVariable(
const char* variableName, 
const T& value)
 
  153    std::stringstream ss;
 
  154    ss << std::boolalpha << value;
 
  155    return Environment::AddOverriddenVariable(variableName, String(ss.str()));
 
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
 
const CharType * CStr(void) const
Gets the character data of this string.
Definition: String.ipp:1395
 
Definition: Environment.hpp:19
 
std::int64_t int64
The Arp integer type of 8 byte size.
Definition: PrimitiveTypes.hpp:39
 
Root namespace for the PLCnext API