SAGA C++ API 1.6
job_description.hpp
Go to the documentation of this file.
00001 //  Copyright (c) 2005-2009 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_wall_time_limit     = "WallTimeLimit";
00078         char const* const description_total_physical_memory = "TotalPhysicalMemory";
00081         char const* const description_cpu_architecture     = "CPUArchitecture";
00082         
00085         char const* const description_operating_system_type = "OperatingSystemType";
00089         char const* const description_candidate_hosts      = "CandidateHosts";
00092         char const* const description_queue               = "Queue";
00095         char const* const description_job_contact          = "JobContact";
00098         char const* const description_job_project          = "JobProject";
00101         char const* const description_spmd_variation       = "SPMDVariation";
00104         char const* const description_total_cpu_count       = "TotalCPUCount";
00107         char const* const description_number_of_processes   = "NumberOfProcesses";
00110         char const* const description_processes_per_host    = "ProcessesPerHost";
00113         char const* const description_threads_per_process   = "ThreadsPerProcess";
00114 
00116         char const* const description_cpuarchitecture_sparc = "sparc";
00118         char const* const description_cpuarchitecture_powerpc = "powerpc";
00120         char const* const description_cpuarchitecture_x86 = "x86";
00122         char const* const description_cpuarchitecture_x86_32 = "x86_32";
00124         char const* const description_cpuarchitecture_x86_64 = "x86_64";
00126         char const* const description_cpuarchitecture_parisc = "parisc";
00128         char const* const description_cpuarchitecture_mips = "mips";
00130         char const* const description_cpuarchitecture_ia64 = "ia64";
00132         char const* const description_cpuarchitecture_arm = "arm";
00134         char const* const description_cpuarchitecture_other = "other";
00135 
00136         
00138         char const* const description_spmdvariation_none      = "None";
00139         
00141         char const* const description_spmdvariation_mpi       = "MPI";
00142         
00144         char const* const description_spmdvariation_gridmpi   = "GridMPI";
00145         
00147         char const* const description_spmdvariation_intelmpi  = "IntelMPI";
00148 
00150         char const* const description_spmdvariation_lammpi    = "LAM-MPI";
00151 
00153         char const* const description_spmdvariation_mpich1    = "MPICH1";
00154 
00156         char const* const description_spmdvariation_mpich2    = "MPICH2";
00157 
00159         char const* const description_spmdvariation_mpichgm   = "MPICH-GM";
00160 
00162         char const* const description_spmdvariation_mpichmx   = "MPICH-MX";
00163 
00165         char const* const description_spmdvariation_mvapich   = "MVAPICH";
00166 
00168         char const* const description_spmdvariation_mvapich2  = "MVAPICH2";
00169 
00171         char const* const description_spmdvariation_openmp    = "OpenMP";
00172 
00174         char const* const description_spmdvariation_poe       = "POE";
00175 
00177         char const* const description_spmdvariation_pvm       = "PVM";
00178 
00179         
00180         
00182         namespace detail
00183         {
00184             char const* const description_operating_system_unknown = "Unknown";
00185             char const* const description_operating_system_macos = "MACOS";
00186             char const* const description_operating_system_attunix = "ATTUNIX";
00187             char const* const description_operating_system_dgux = "DGUX";
00188             char const* const description_operating_system_decnt = "DECNT";
00189             char const* const description_operating_system_true64_unix = "True64_UNIX";
00190             char const* const description_operating_system_openvms = "openVMS";
00191             char const* const description_operating_system_hpux = "HPUX";
00192             char const* const description_operating_system_aix = "AIX";
00193             char const* const description_operating_system_mvs = "MVS";
00194             char const* const description_operating_system_os400 = "OS400";
00195             char const* const description_operating_system_os_2 = "OS_2";
00196             char const* const description_operating_system_javavm = "JavaVM";
00197             char const* const description_operating_system_msdos = "MSDOS";
00198             char const* const description_operating_system_win3x = "WIN3x";
00199             char const* const description_operating_system_win95 = "WIN95";
00200             char const* const description_operating_system_win98 = "WIN98";
00201             char const* const description_operating_system_winnt = "WINNT";
00202             char const* const description_operating_system_wince = "WINCE";
00203             char const* const description_operating_system_ncr3000 = "NCR3000";
00204             char const* const description_operating_system_netware = "netWare";
00205             char const* const description_operating_system_osf = "OSF";
00206             char const* const description_operating_system_dc_os = "DC_OS";
00207             char const* const description_operating_system_reliant_unix = "Reliant_UNIX";
00208             char const* const description_operating_system_sco_unixware = "SCO_UnixWare";
00209             char const* const description_operating_system_sco_openserver = "SCO_OpenServer";
00210             char const* const description_operating_system_sequent = "Sequent";
00211             char const* const description_operating_system_irix = "IRIX";
00212             char const* const description_operating_system_solaris = "Solaris";
00213             char const* const description_operating_system_sunos = "SunOS";
00214             char const* const description_operating_system_u6000 = "U6000";
00215             char const* const description_operating_system_aseries = "ASERIES";
00216             char const* const description_operating_system_tandemnsk = "TandemNSK";
00217             char const* const description_operating_system_tandemnt = "TandenNT";
00218             char const* const description_operating_system_bs2000 = "BS2000";
00219             char const* const description_operating_system_linux = "LINUX";
00220             char const* const description_operating_system_lynx = "Lynx";
00221             char const* const description_operating_system_xenix = "XENIX";
00222             char const* const description_operating_system_vm = "VM";
00223             char const* const description_operating_system_interactive_unix = "Interactive_UNIX";
00224             char const* const description_operating_system_bsdunix = "BSDUNIX";
00225             char const* const description_operating_system_freebsd = "FreeBSD";
00226             char const* const description_operating_system_netbsd = "NetBSD";
00227             char const* const description_operating_system_gnu_hurd = "GNU_Hurd";
00228             char const* const description_operating_system_os9 = "OS9";
00229             char const* const description_operating_system_mach_kernel = "MACH_Kernel";
00230             char const* const description_operating_system_inferno = "Inferno";
00231             char const* const description_operating_system_qnx = "QNX";
00232             char const* const description_operating_system_epoc = "EPOC";
00233             char const* const description_operating_system_ixworks = "IxWorks";
00234             char const* const description_operating_system_vxworks = "VxWorks";
00235             char const* const description_operating_system_mint = "MiNT";
00236             char const* const description_operating_system_beos = "BeOS";
00237             char const* const description_operating_system_hp_mpe = "HP_MPE";
00238             char const* const description_operating_system_nextstep = "NextStep";
00239             char const* const description_operating_system_palmpilot = "PalmPilot";
00240             char const* const description_operating_system_rhapsody = "Rhapsody";
00241             char const* const description_operating_system_windows_2000 = "Windows_2000";
00242             char const* const description_operating_system_dedicated = "Dedicated";
00243             char const* const description_operating_system_os_390 = "OS_390";
00244             char const* const description_operating_system_vse = "VSE";
00245             char const* const description_operating_system_tpf = "TPF";
00246             char const* const description_operating_system_windows_me = "Windows_Me";
00247             char const* const description_operating_system_caldera_open_unix = "Caldera_open_UNIX";
00248             char const* const description_operating_system_openbsd = "OpenBSD";
00249             char const* const description_operating_system_not_applicable = "Not_Applicable";
00250             char const* const description_operating_system_windows_xp = "Windows_XP";
00251             char const* const description_operating_system_z_os = "z_OS";
00252             char const* const description_operating_system_other = "other";
00253         }
00255     }
00256 
00266     class SAGA_JOB_PACKAGE_EXPORT description 
00267         : public saga::object,
00268           public saga::detail::attribute<description>
00269     {
00270     protected:
00272 
00273         friend struct saga::detail::attribute<description>;  // needs to access get_impl()
00274         friend class saga::impl::description;
00275         explicit description(saga::impl::description *impl);
00277 
00278     public:
00283         description (void);
00284 
00289         explicit description (saga::object const& o);
00290 
00295         ~description (void);
00296 
00301         description &operator= (saga::object const& o);
00302 
00303     }; 
00304 
00305     }   // namespace job
00306 }
00307 
00308 // re-enable warnings about dependent classes not being exported from the dll
00309 #if defined(BOOST_MSVC)
00310 #pragma warning(pop)
00311 #endif
00312 
00313 #endif // !defined(SAGA_PACKAGES_JOB_JOB_DESCRIPTION_HPP)
00314 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines