Environment.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. //
  2. // Environment.cpp
  3. //
  4. // $Id: //poco/1.4/Foundation/src/Environment.cpp#3 $
  5. //
  6. // Library: Foundation
  7. // Package: Core
  8. // Module: Environment
  9. //
  10. // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
  11. // and Contributors.
  12. //
  13. // SPDX-License-Identifier: BSL-1.0
  14. //
  15. #include "Poco/Environment.h"
  16. #include "Poco/Version.h"
  17. #include <cstdlib>
  18. #include <cstdio> // sprintf()
  19. #if defined(POCO_OS_FAMILY_VMS)
  20. #include "Environment_VMS.cpp"
  21. #elif defined(POCO_VXWORKS)
  22. #include "Environment_VX.cpp"
  23. #elif defined(POCO_OS_FAMILY_UNIX)
  24. #include "Environment_UNIX.cpp"
  25. #elif defined(POCO_OS_FAMILY_WINDOWS) && defined(POCO_WIN32_UTF8)
  26. #if defined(_WIN32_WCE)
  27. #include "Environment_WINCE.cpp"
  28. #else
  29. #include "Environment_WIN32U.cpp"
  30. #endif
  31. #elif defined(POCO_OS_FAMILY_WINDOWS)
  32. #include "Environment_WIN32.cpp"
  33. #endif
  34. namespace Poco {
  35. std::string Environment::get(const std::string& name)
  36. {
  37. return EnvironmentImpl::getImpl(name);
  38. }
  39. std::string Environment::get(const std::string& name, const std::string& defaultValue)
  40. {
  41. if (has(name))
  42. return get(name);
  43. else
  44. return defaultValue;
  45. }
  46. bool Environment::has(const std::string& name)
  47. {
  48. return EnvironmentImpl::hasImpl(name);
  49. }
  50. void Environment::set(const std::string& name, const std::string& value)
  51. {
  52. EnvironmentImpl::setImpl(name, value);
  53. }
  54. std::string Environment::osName()
  55. {
  56. return EnvironmentImpl::osNameImpl();
  57. }
  58. std::string Environment::osDisplayName()
  59. {
  60. return EnvironmentImpl::osDisplayNameImpl();
  61. }
  62. std::string Environment::osVersion()
  63. {
  64. return EnvironmentImpl::osVersionImpl();
  65. }
  66. std::string Environment::osArchitecture()
  67. {
  68. return EnvironmentImpl::osArchitectureImpl();
  69. }
  70. std::string Environment::nodeName()
  71. {
  72. return EnvironmentImpl::nodeNameImpl();
  73. }
  74. std::string Environment::nodeId()
  75. {
  76. NodeId id;
  77. nodeId(id);
  78. char result[18];
  79. std::sprintf(result, "%02x:%02x:%02x:%02x:%02x:%02x",
  80. id[0],
  81. id[1],
  82. id[2],
  83. id[3],
  84. id[4],
  85. id[5]);
  86. return std::string(result);
  87. }
  88. void Environment::nodeId(NodeId& id)
  89. {
  90. return EnvironmentImpl::nodeIdImpl(id);
  91. }
  92. unsigned Environment::processorCount()
  93. {
  94. return EnvironmentImpl::processorCountImpl();
  95. }
  96. Poco::UInt32 Environment::libraryVersion()
  97. {
  98. return POCO_VERSION;
  99. }
  100. } // namespace Poco