environment.hpp 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. /*##############################################################################
  2. HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems.
  3. Licensed under the Apache License, Version 2.0 (the "License");
  4. you may not use this file except in compliance with the License.
  5. You may obtain a copy of the License at
  6. http://www.apache.org/licenses/LICENSE-2.0
  7. Unless required by applicable law or agreed to in writing, software
  8. distributed under the License is distributed on an "AS IS" BASIS,
  9. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. See the License for the specific language governing permissions and
  11. limitations under the License.
  12. ############################################################################## */
  13. // *** Include file generated by HIDL Version 1.3 from environment.scm ***
  14. // *** Not to be hand edited (changes will be lost on re-generation) ***
  15. #ifndef environment_SCM_INCL
  16. #define environment_SCM_INCL
  17. #include "jiface.hpp"
  18. #include "dasubs.hpp"
  19. #ifdef WIN32
  20. #ifdef ENVIRONMENT_EXPORTS
  21. #define ENVIRONMENT_API __declspec(dllexport)
  22. #else
  23. #define ENVIRONMENT_API __declspec(dllimport)
  24. #endif
  25. #else
  26. #define ENVIRONMENT_API
  27. #endif
  28. interface IPropertyTree; // Not yet SCM-compliant
  29. interface IEnvironment; // Forward reference
  30. interface ISDSSubscription;// Forward reference
  31. interface IConstEnvBase : extends IInterface
  32. {
  33. virtual IStringVal & getXML(IStringVal & str) const = 0;
  34. virtual IStringVal & getName(IStringVal & str) const = 0;
  35. virtual IPropertyTree & getPTree() const = 0;
  36. };
  37. interface IConstDomainInfo : extends IConstEnvBase
  38. {
  39. virtual void getAccountInfo(IStringVal & name, IStringVal & pw) const = 0;
  40. virtual void getSnmpSecurityString(IStringVal & securityString) const = 0;
  41. virtual void getSSHAccountInfo(IStringVal & name, IStringVal & sshKeyFile, IStringVal& sshKeyPassphrase) const = 0;
  42. };
  43. enum EnvMachineState
  44. {
  45. MachineStateAvailable = 0,
  46. MachineStateUnavailable = 1,
  47. MachineStateUnknown = 2
  48. };
  49. enum EnvMachineOS
  50. {
  51. MachineOsW2K = 0,
  52. MachineOsSolaris = 1,
  53. MachineOsLinux = 2,
  54. MachineOsUnknown = 3,
  55. MachineOsSize = 4
  56. };
  57. interface IConstComputerTypeInfo : extends IConstEnvBase
  58. {
  59. virtual EnvMachineOS getOS() const = 0;
  60. virtual unsigned getNicSpeedMbitSec() const = 0;
  61. };
  62. interface IConstMachineInfo : extends IConstEnvBase
  63. {
  64. virtual IConstDomainInfo * getDomain() const = 0;
  65. virtual IStringVal & getNetAddress(IStringVal & str) const = 0;
  66. virtual unsigned getNicSpeedMbitSec() const = 0;
  67. virtual IStringVal & getDescription(IStringVal & str) const = 0;
  68. virtual EnvMachineOS getOS() const = 0;
  69. virtual EnvMachineState getState() const = 0;
  70. };
  71. interface IConstInstanceInfo : extends IConstEnvBase
  72. {
  73. virtual IConstMachineInfo * getMachine() const = 0;
  74. virtual IStringVal & getEndPoint(IStringVal & str) const = 0;
  75. virtual unsigned getPort() const = 0;
  76. virtual IStringVal & getExecutableDirectory(IStringVal & str) const = 0;
  77. virtual bool getRunInfo(IStringVal & progpath, IStringVal & workdir, const char * defaultprogname) const = 0;
  78. };
  79. interface IConstDropZoneInfo : extends IConstEnvBase
  80. {
  81. virtual IStringVal & getComputerName(IStringVal & str) const = 0;
  82. virtual IStringVal & getDescription(IStringVal & str) const = 0;
  83. virtual IStringVal & getDirectory(IStringVal & str) const = 0;
  84. };
  85. interface IConstEnvironment : extends IConstEnvBase
  86. {
  87. virtual IConstDomainInfo * getDomain(const char * name) const = 0;
  88. virtual IConstMachineInfo * getMachine(const char * name) const = 0;
  89. virtual IConstMachineInfo * getMachineByAddress(const char * netaddress) const = 0;
  90. virtual IConstMachineInfo * getMachineForLocalHost() const = 0;
  91. virtual IConstDropZoneInfo * getDropZone(const char * name) const = 0;
  92. virtual IConstDropZoneInfo * getDropZoneByComputer(const char * computer) const = 0;
  93. virtual IConstInstanceInfo * getInstance(const char * type, const char * version, const char * domain) const = 0;
  94. virtual IConstComputerTypeInfo * getComputerType(const char * name) const = 0;
  95. virtual bool getRunInfo(IStringVal & path, IStringVal & dir, const char * type, const char * version, const char * machineaddr, const char * defaultprogname) const = 0;
  96. virtual IEnvironment & lock() const = 0;
  97. virtual bool isConstEnvironment() const = 0;
  98. virtual void clearCache() = 0;
  99. };
  100. interface IEnvironment : extends IConstEnvironment
  101. {
  102. virtual void commit() = 0;
  103. virtual void rollback() = 0;
  104. virtual void setXML(const char * (null)) = 0;
  105. virtual void preload() = 0;
  106. };
  107. interface IEnvironmentFactory : extends IInterface
  108. {
  109. virtual IConstEnvironment * openEnvironment() = 0;
  110. virtual IEnvironment * updateEnvironment() = 0;
  111. virtual IEnvironment * loadLocalEnvironmentFile(const char * filename) = 0;
  112. virtual IEnvironment * loadLocalEnvironment(const char * xml) = 0;
  113. virtual SubscriptionId subscribe(ISDSSubscription * pSubHandler) = 0;
  114. virtual void unsubscribe(SubscriptionId id) = 0;
  115. virtual void validateCache() = 0;
  116. };
  117. class StringBuffer;
  118. extern "C" ENVIRONMENT_API IEnvironmentFactory * getEnvironmentFactory();
  119. extern "C" ENVIRONMENT_API void closeEnvironment();
  120. #endif // _environment_SCM_INCL
  121. //end