00001 // Copyright (c) 2005-2008 Hartmut Kaiser 00002 // Copyright (c) 2007 Ole Weidner (oweidner@cct.lsu.edu) 00003 // 00004 // Distributed under the Boost Software License, Version 1.0. (See accompanying 00005 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 00006 00007 #ifndef SAGA_PACKAGES_JOB_JOB_DESCRIPTION_HPP 00008 #define SAGA_PACKAGES_JOB_JOB_DESCRIPTION_HPP 00009 00010 #include <string> 00011 #include <vector> 00012 00013 // include dependent spec sections 00014 #include <saga/saga/util.hpp> 00015 #include <saga/saga/base.hpp> 00016 #include <saga/saga/types.hpp> 00017 #include <saga/saga/session.hpp> 00018 #include <saga/saga/call.hpp> 00019 #include <saga/saga/detail/attribute.hpp> 00020 00021 #include <saga/saga/packages/job/config.hpp> 00022 00023 // suppress warnings about dependent classes not being exported from the dll 00024 #if defined(BOOST_MSVC) 00025 #pragma warning(push) 00026 #pragma warning(disable: 4251 4231 4275 4660) 00027 #endif 00028 00030 namespace saga 00031 { 00032 namespace job { 00033 00034 namespace attributes 00035 { 00039 char const* const description_executable = "Executable"; 00042 char const* const description_arguments = "Arguments"; 00045 char const* const description_environment = "Environment"; 00048 char const* const description_working_directory = "WorkingDirectory"; 00051 char const* const description_interactive = "Interactive"; 00054 char const* const description_input = "Input"; 00057 char const* const description_output = "Output"; 00060 char const* const description_error = "Error"; 00063 char const* const description_file_transfer = "FileTransfer"; 00066 char const* const description_cleanup = "Cleanup"; 00069 char const* const description_job_start_time = "JobStartTime"; 00072 char const* const description_total_cpu_time = "TotalCPUTime"; 00075 char const* const description_total_physical_memory = "TotalPhysicalMemory"; 00078 char const* const description_cpu_architecture = "CPUArchitecture"; 00079 00082 char const* const description_operating_system_type = "OperatingSystemType"; 00086 char const* const description_candidate_hosts = "CandidateHosts"; 00089 char const* const description_queue = "Queue"; 00092 char const* const description_job_contact = "JobContact"; 00095 char const* const description_spmd_variation = "SPMDVariation"; 00098 char const* const description_total_cpu_count = "TotalCPUCount"; 00101 char const* const description_number_of_processes = "NumberOfProcesses"; 00104 char const* const description_processes_per_host = "ProcessesPerHost"; 00107 char const* const description_threads_per_process = "ThreadsPerProcess"; 00108 00110 char const* const cpuarchitecture_sparc = "sparc"; 00112 char const* const cpuarchitecture_powerpc = "powerpc"; 00114 char const* const cpuarchitecture_x86 = "x86"; 00116 char const* const cpuarchitecture_x86_32 = "x86_32"; 00118 char const* const cpuarchitecture_x86_64 = "x86_64"; 00120 char const* const cpuarchitecture_parisc = "parisc"; 00122 char const* const cpuarchitecture_mips = "mips"; 00124 char const* const cpuarchitecture_ia64 = "ia64"; 00126 char const* const cpuarchitecture_arm = "arm"; 00128 char const* const cpuarchitecture_other = "other"; 00129 } 00130 00140 class SAGA_JOB_PACKAGE_EXPORT description 00141 : public saga::object, 00142 public saga::detail::attribute<description> 00143 { 00144 00145 protected: 00147 00148 friend struct saga::detail::attribute<description>; // needs to access get_impl() 00149 friend class saga::impl::description; 00150 explicit description(saga::impl::description *impl); 00152 00153 public: 00158 description (void); 00159 00164 explicit description (saga::object const& o); 00165 00170 ~description (void); 00171 00176 description &operator= (saga::object const& o); 00177 00178 }; 00179 00180 } // namespace job 00181 } 00182 00183 // re-enable warnings about dependent classes not being exported from the dll 00184 #if defined(BOOST_MSVC) 00185 #pragma warning(pop) 00186 #endif 00187 00188 #endif // !defined(SAGA_PACKAGES_JOB_JOB_DESCRIPTION_HPP) 00189