8 #include "Arp/System/Core/AppDomainSingleton.hxx"     9 #include "Arp/System/Core/Endianness.hpp"    18 namespace Arp { 
namespace System { 
namespace Commons
    24     static void         Setup(
void);
    25     static void         SetupSettings(
int core);
    26     static void         SetupTrustStore(
const std::vector<String>& trustStorePaths, 
const String& trustStoreEditPath);
    27     static void         SetupIdentityStore(
const std::vector<String>& identityStorePaths, 
const String& identityStoreEditPath);
    28     static void         Dispose(
void);
    31     static int64        GetTickCount(
void);
    33     static String       GetVariable(
const char* variableName);
    35     static bool         GetVariableValue(
const char* variableName, T& result);
    36     static bool         GetVariableValue(
const char* variableName, 
String& value);
    38     static bool         GetDefaultVariableValue(
const char* variableName, T& result);
    39     static bool         GetDefaultVariableValue(
const char* variableName, 
String& value);
    41     static bool         AddVariable(
const char* variableName, 
const T& value);
    42     static bool         AddVariable(
const char* variableName, 
const String& value);
    44     static bool         AddOverriddenVariable(
const char* variableName, 
const T& value);
    45     static bool         AddOverriddenVariable(
const char* variableName, 
const String& value);
    46     static bool         SetVariable(
const char* variableName, 
const String& value);
    49     static void         RegisterEnvironmentVariables(
void);
    50     static bool         RegisterEnvironmentVariable(
const String& name, 
const char* value);
    59         using VariableNames = std::set<String>; 
    60         using EnvironmentVariables = std::map<String, String>; 
    64         ~Data(
void) = 
default;
    67         bool    AddDefaultVariable(
const char* variableName, 
const String& value);
    68         bool    AddOverriddenVariable(
const char* variableName, 
const String& value);
    69         bool    SetDefaultVariable(
const char* variableName, 
const String& value);
    70         bool    SetOverriddenVariable(
const char* variableName, 
const String& value);
    71         bool    GetCurrentVariableValue(
const char* variableName, 
const char*& pResult)
const;
    72         bool    GetDefaultVariableValue(
const char* variableName, 
const char*& pResult)
const;
    73         bool    GetOverriddenVariableValue(
const char* variableName, 
const char*& pResult)
const;
    76         void    GetVariableNames(VariableNames& result);
    79         static bool GetVariableValueFrom(
const EnvironmentVariables& items, 
const char* variableName, 
const char*& pResult);
    82         EnvironmentVariables    environmentVariables;
    83         EnvironmentVariables    overriddenVariables;
    89 inline int64 Environment::GetTickCount()
    91     return duration_cast<milliseconds>(steady_clock::now().time_since_epoch()).count();
    94 inline Endianness Environment::GetEndianness(
void)
    96     return Endianness::Current;
   100 inline bool Environment::GetVariableValue(
const char* variableName, T& result)
   103     if (!GetVariableValue(variableName, value))
   108     std::istringstream iss(value.CStr());
   109     iss >> boolalpha >> result;
   113 inline String Environment::GetVariable(
const char* variableName)
   116     if (GetVariableValue(variableName, result))
   121     return String::Empty;
   125 inline bool Environment::GetDefaultVariableValue(
const char* variableName, T& result)
   128     if (!GetDefaultVariableValue(variableName, value))
   133     std::istringstream iss(value.CStr());
   134     iss >> boolalpha >> result;
   139 inline bool Environment::AddVariable(
const char* variableName, 
const T& value)
   141     std::stringstream ss;
   142     ss << boolalpha << value;
   143     return Environment::AddVariable(variableName, 
String(ss.str()));
   146 inline bool Environment::AddVariable(
const char* variableName, 
const String& value)
   148     return Data::GetInstance().AddDefaultVariable(variableName, value);
   152 inline bool Environment::AddOverriddenVariable(
const char* variableName, 
const T& value)
   154     std::stringstream ss;
   155     ss << boolalpha << value;
   156     return Environment::AddOverriddenVariable(variableName, 
String(ss.str()));
   159 inline bool Environment::AddOverriddenVariable(
const char* variableName, 
const String& value)
   161     return Data::GetInstance().AddOverriddenVariable(variableName, value);
   166 inline bool Environment::Data::GetCurrentVariableValue(
const char* variableName, 
const char*& pResult)
const   169     if (GetOverriddenVariableValue(variableName, pResult))
   174     return GetDefaultVariableValue(variableName, pResult);
   177 inline bool Environment::Data::GetDefaultVariableValue(
const char* variableName, 
const char*& pResult)
const   179     return GetVariableValueFrom(this->environmentVariables, variableName, pResult);
   182 inline bool Environment::Data::GetOverriddenVariableValue(
const char* variableName, 
const char*& pResult)
const   184     return GetVariableValueFrom(this->overriddenVariables, variableName, pResult);
 
Arp::BasicString< char8 > String
The Arp String class.
Definition: TypeSystem.h:27
 
Root namespace for the PLCnext API
 
This class implements the singleton pattern for singletons with process wide scope.
Definition: AppDomainSingleton.hxx:24
 
Endianness
This enum defines the endinannes of the target architecture.
Definition: Endianness.hpp:12
 
System components used by the System, Device, Plc or Io domains.
 
Definition: Environment.hpp:21
 
std::int64_t int64
The Arp integer type of 8 byte size.
Definition: PrimitiveTypes.hpp:41