00001 
00002 
00003 
00004 
00005 
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 
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 
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 
00137         namespace detail
00138         {
00139             char const* const description_operating_system_unknown = "Unknown";
00140             char const* const description_operating_system_macos = "MACOS";
00141             char const* const description_operating_system_attunix = "ATTUNIX";
00142             char const* const description_operating_system_dgux = "DGUX";
00143             char const* const description_operating_system_decnt = "DECNT";
00144             char const* const description_operating_system_true64_unix = "True64_UNIX";
00145             char const* const description_operating_system_openvms = "openVMS";
00146             char const* const description_operating_system_hpux = "HPUX";
00147             char const* const description_operating_system_aix = "AIX";
00148             char const* const description_operating_system_mvs = "MVS";
00149             char const* const description_operating_system_os400 = "OS400";
00150             char const* const description_operating_system_os_2 = "OS_2";
00151             char const* const description_operating_system_javavm = "JavaVM";
00152             char const* const description_operating_system_msdos = "MSDOS";
00153             char const* const description_operating_system_win3x = "WIN3x";
00154             char const* const description_operating_system_win95 = "WIN95";
00155             char const* const description_operating_system_win98 = "WIN98";
00156             char const* const description_operating_system_winnt = "WINNT";
00157             char const* const description_operating_system_wince = "WINCE";
00158             char const* const description_operating_system_ncr3000 = "NCR3000";
00159             char const* const description_operating_system_netware = "netWare";
00160             char const* const description_operating_system_osf = "OSF";
00161             char const* const description_operating_system_dc_os = "DC_OS";
00162             char const* const description_operating_system_reliant_unix = "Reliant_UNIX";
00163             char const* const description_operating_system_sco_unixware = "SCO_UnixWare";
00164             char const* const description_operating_system_sco_openserver = "SCO_OpenServer";
00165             char const* const description_operating_system_sequent = "Sequent";
00166             char const* const description_operating_system_irix = "IRIX";
00167             char const* const description_operating_system_solaris = "Solaris";
00168             char const* const description_operating_system_sunos = "SunOS";
00169             char const* const description_operating_system_u6000 = "U6000";
00170             char const* const description_operating_system_aseries = "ASERIES";
00171             char const* const description_operating_system_tandemnsk = "TandemNSK";
00172             char const* const description_operating_system_tandemnt = "TandenNT";
00173             char const* const description_operating_system_bs2000 = "BS2000";
00174             char const* const description_operating_system_linux = "LINUX";
00175             char const* const description_operating_system_lynx = "Lynx";
00176             char const* const description_operating_system_xenix = "XENIX";
00177             char const* const description_operating_system_vm = "VM";
00178             char const* const description_operating_system_interactive_unix = "Interactive_UNIX";
00179             char const* const description_operating_system_bsdunix = "BSDUNIX";
00180             char const* const description_operating_system_freebsd = "FreeBSD";
00181             char const* const description_operating_system_netbsd = "NetBSD";
00182             char const* const description_operating_system_gnu_hurd = "GNU_Hurd";
00183             char const* const description_operating_system_os9 = "OS9";
00184             char const* const description_operating_system_mach_kernel = "MACH_Kernel";
00185             char const* const description_operating_system_inferno = "Inferno";
00186             char const* const description_operating_system_qnx = "QNX";
00187             char const* const description_operating_system_epoc = "EPOC";
00188             char const* const description_operating_system_ixworks = "IxWorks";
00189             char const* const description_operating_system_vxworks = "VxWorks";
00190             char const* const description_operating_system_mint = "MiNT";
00191             char const* const description_operating_system_beos = "BeOS";
00192             char const* const description_operating_system_hp_mpe = "HP_MPE";
00193             char const* const description_operating_system_nextstep = "NextStep";
00194             char const* const description_operating_system_palmpilot = "PalmPilot";
00195             char const* const description_operating_system_rhapsody = "Rhapsody";
00196             char const* const description_operating_system_windows_2000 = "Windows_2000";
00197             char const* const description_operating_system_dedicated = "Dedicated";
00198             char const* const description_operating_system_os_390 = "OS_390";
00199             char const* const description_operating_system_vse = "VSE";
00200             char const* const description_operating_system_tpf = "TPF";
00201             char const* const description_operating_system_windows_me = "Windows_Me";
00202             char const* const description_operating_system_caldera_open_unix = "Caldera_open_UNIX";
00203             char const* const description_operating_system_openbsd = "OpenBSD";
00204             char const* const description_operating_system_not_applicable = "Not_Applicable";
00205             char const* const description_operating_system_windows_xp = "Windows_XP";
00206             char const* const description_operating_system_z_os = "z_OS";
00207             char const* const description_operating_system_other = "other";
00208         }
00210     }
00211 
00221     class SAGA_JOB_PACKAGE_EXPORT description 
00222         : public saga::object,
00223           public saga::detail::attribute<description>
00224     {
00225     protected:
00227 
00228         friend struct saga::detail::attribute<description>;  
00229         friend class saga::impl::description;
00230         explicit description(saga::impl::description *impl);
00232 
00233     public:
00238         description (void);
00239 
00244         explicit description (saga::object const& o);
00245 
00250         ~description (void);
00251 
00256         description &operator= (saga::object const& o);
00257 
00258     }; 
00259 
00260     }   
00261 }
00262 
00263 
00264 #if defined(BOOST_MSVC)
00265 #pragma warning(pop)
00266 #endif
00267 
00268 #endif // !defined(SAGA_PACKAGES_JOB_JOB_DESCRIPTION_HPP)
00269