PyObject *wrap_rtdb_next(PyObject *self, PyObject *args) { char name[256]; PyObject *returnObj = NULL; if (rtdb_seq_next(rtdb_handle, sizeof(name), name)) { returnObj = PyString_FromString(name); /*Py_BuildValue("s#", name, 1); */ } else { PyErr_SetString(NwchemError, "rtdb_next: failed"); return NULL; } return returnObj; }
int rtdb_next(const int handle, const int namelen, char *name) { int status; #ifdef GAGROUPS int me = GA_Nodeid(); #endif if (!verify_parallel_access()) return 0; if (handle < 0 || handle >= MAX_RTDB) { (void) fprintf(stderr, "rtdb_next: handle out of range %d\n", handle); (void) fflush(stderr); return 0; } if (par_mode[handle] == INACTIVE) { (void) fprintf(stderr, "rtdb_next: handle not active %d\n",handle); (void) fflush(stderr); return 0; } if (par_mode[handle] == RTDB_SEQ_MODE && parallel_mode == RTDB_PAR_MODE) { (void) fprintf(stderr, "rtdb_next: seq. open and par. next\n"); (void) fflush(stderr); return 0; } if (parallel_mode == RTDB_SEQ_MODE || me == 0) status = rtdb_seq_next(handle, namelen, name); if (parallel_mode == RTDB_PAR_MODE) { rtdb_broadcast(TYPE_RTDB_STATUS, MT_INT, 1, (void *) &status); if (status) { int len; if (me == 0)len = strlen(name)+1; rtdb_broadcast(TYPE_RTDB_LEN, MT_INT, 1, (void *) &len); rtdb_broadcast(TYPE_RTDB_NAME, MT_CHAR, len, (void *) name); } } return status; }