drmaa-0.1.0.0: src/DRMAA.c
#include "stddef.h"
#include "stdio.h"
#include "drmaa.h"
int inline_c_DRMAA_0_54e600eaaa1f15b2d247a7799eeb2c2626774aa9(char * ptr_inline_c_0) {
int errnum = 0;
errnum = drmaa_init (NULL, ptr_inline_c_0, DRMAA_ERROR_STRING_BUFFER);
if (errnum != DRMAA_ERRNO_SUCCESS) {
return 1;
}
return 0;
}
int inline_c_DRMAA_1_df791815daa185d543e0513c42f96dbbd8b8b214() {
char error[DRMAA_ERROR_STRING_BUFFER];
int errnum = 0;
errnum = drmaa_exit (error, DRMAA_ERROR_STRING_BUFFER);
if (errnum != DRMAA_ERRNO_SUCCESS) {
fprintf (stderr, "Could not shut down the DRMAA library: %s\n", error);
return 1;
}
return 0;
}
int inline_c_DRMAA_2_8569c20fd54d45f727dd1560458a1febedbc42e1(char * wd_inline_c_0, const char ** envPtr_inline_c_1, char * native_inline_c_2, char * c_exec_inline_c_3, const char ** aptr_inline_c_4) {
int exception = 0;
char error[DRMAA_ERROR_STRING_BUFFER];
int errnum = 0;
drmaa_job_template_t *jt = NULL;
errnum = drmaa_allocate_job_template (&jt, error, DRMAA_ERROR_STRING_BUFFER);
if (errnum != DRMAA_ERRNO_SUCCESS) {
fprintf (stderr, "Could not create job template: %s\n", error);
} else {
/* set options */
errnum = drmaa_set_attribute (jt, DRMAA_WD, wd_inline_c_0,
error, DRMAA_ERROR_STRING_BUFFER);
errnum = drmaa_set_vector_attribute (jt, DRMAA_V_ENV, envPtr_inline_c_1,
error, DRMAA_ERROR_STRING_BUFFER);
errnum = drmaa_set_attribute (jt, DRMAA_NATIVE_SPECIFICATION, native_inline_c_2,
error, DRMAA_ERROR_STRING_BUFFER);
errnum = drmaa_set_attribute (jt, DRMAA_REMOTE_COMMAND, c_exec_inline_c_3,
error, DRMAA_ERROR_STRING_BUFFER);
if (errnum != DRMAA_ERRNO_SUCCESS) {
fprintf (stderr, "Could not set attribute \"%s\": %s\n",
DRMAA_REMOTE_COMMAND, error);
} else {
errnum = drmaa_set_vector_attribute (jt, DRMAA_V_ARGV, aptr_inline_c_4, error,
DRMAA_ERROR_STRING_BUFFER);
}
if (errnum != DRMAA_ERRNO_SUCCESS) {
fprintf (stderr, "Could not set attribute \"%s\": %s\n",
DRMAA_REMOTE_COMMAND, error);
} else {
char jobid[DRMAA_JOBNAME_BUFFER];
char jobid_out[DRMAA_JOBNAME_BUFFER];
int status = 0;
drmaa_attr_values_t *rusage = NULL;
errnum = drmaa_run_job (jobid, DRMAA_JOBNAME_BUFFER, jt, error,
DRMAA_ERROR_STRING_BUFFER);
if (errnum != DRMAA_ERRNO_SUCCESS) {
fprintf (stderr, "Could not submit job: %s\n", error);
exception = 1;
} else {
printf ("Your job has been submitted with id %s\n", jobid);
errnum = drmaa_wait (jobid, jobid_out, DRMAA_JOBNAME_BUFFER, &status,
DRMAA_TIMEOUT_WAIT_FOREVER, &rusage, error,
DRMAA_ERROR_STRING_BUFFER);
if (errnum != DRMAA_ERRNO_SUCCESS) {
fprintf (stderr, "Could not wait for job: %s\n", error);
exception = 1;
} else {
char usage[DRMAA_ERROR_STRING_BUFFER];
int aborted = 0;
drmaa_wifaborted(&aborted, status, NULL, 0);
if (aborted == 1) {
printf("Job %s never ran\n", jobid);
exception = 1;
} else {
int exited = 0;
drmaa_wifexited(&exited, status, NULL, 0);
if (exited == 1) {
int exit_status = 0;
drmaa_wexitstatus(&exit_status, status, NULL, 0);
printf("Job %s finished regularly with exit status %d\n", jobid, exit_status);
exception = exit_status;
} else {
int signaled = 0;
drmaa_wifsignaled(&signaled, status, NULL, 0);
if (signaled == 1) {
char termsig[DRMAA_SIGNAL_BUFFER+1];
drmaa_wtermsig(termsig, DRMAA_SIGNAL_BUFFER, status, NULL, 0);
printf("Job %s finished due to signal %s\n", jobid, termsig);
} else {
printf("Job %s finished with unclear conditions\n", jobid);
}
} /* else */
} /* else */
printf ("Job Usage:\n");
while (drmaa_get_next_attr_value (rusage, usage, DRMAA_ERROR_STRING_BUFFER) == DRMAA_ERRNO_SUCCESS) {
printf (" %s\n", usage);
}
drmaa_release_attr_values (rusage);
} /* else */
} /* else */
} /* else */
errnum = drmaa_delete_job_template (jt, error, DRMAA_ERROR_STRING_BUFFER);
if (errnum != DRMAA_ERRNO_SUCCESS) {
fprintf (stderr, "Could not delete job template: %s\n", error);
}
} /* else */
return exception;
}