boolean OCI_API OCI_DequeueSetWaitTime ( OCI_Dequeue *dequeue, int timeout ) { boolean res = TRUE; sb4 value = (ub4) timeout; OCI_CHECK_PTR(OCI_IPC_DEQUEUE, dequeue, FALSE); OCI_CALL2 ( res, dequeue->typinf->con, OCIAttrSet((dvoid *) dequeue->opth, (ub4 ) OCI_DTYPE_AQDEQ_OPTIONS, (dvoid *) &value, (ub4 ) 0, (ub4 ) OCI_ATTR_WAIT, dequeue->typinf->con->err) ) OCI_RESULT(res); return res; }
boolean OCI_API OCI_DequeueSetNavigation ( OCI_Dequeue *dequeue, unsigned int position ) { boolean res = TRUE; ub4 value = (ub4) position; OCI_CHECK_PTR(OCI_IPC_DEQUEUE, dequeue, FALSE); OCI_CALL2 ( res, dequeue->typinf->con, OCIAttrSet((dvoid *) dequeue->opth, (ub4 ) OCI_DTYPE_AQDEQ_OPTIONS, (dvoid *) &value, (ub4 ) 0, (ub4 ) OCI_ATTR_NAVIGATION, dequeue->typinf->con->err) ) OCI_RESULT(res); return res; }
int OCI_API OCI_DequeueGetWaitTime ( OCI_Dequeue *dequeue ) { boolean res = TRUE; sb4 ret = 0; OCI_CHECK_PTR(OCI_IPC_DEQUEUE, dequeue, 0); OCI_CALL2 ( res, dequeue->typinf->con, OCIAttrGet((dvoid *) dequeue->opth, (ub4 ) OCI_DTYPE_AQDEQ_OPTIONS, (dvoid *) &ret, (ub4 *) NULL, (ub4 ) OCI_ATTR_WAIT, dequeue->typinf->con->err) ) OCI_RESULT(res); return (int) ret; }
boolean OCI_API OCI_DequeueSetMode ( OCI_Dequeue *dequeue, unsigned int mode ) { boolean res = TRUE; ub4 value = (ub4) mode; OCI_CHECK_PTR(OCI_IPC_DEQUEUE, dequeue, FALSE); OCI_CALL2 ( res, dequeue->typinf->con, OCIAttrSet((dvoid *) dequeue->opth, (ub4 ) OCI_DTYPE_AQDEQ_OPTIONS, (dvoid *) &value, (ub4 ) 0, (ub4 ) OCI_ATTR_DEQ_MODE, dequeue->typinf->con->err) ) OCI_RESULT(res); return res; }
unsigned int OCI_API OCI_DequeueGetNavigation ( OCI_Dequeue *dequeue ) { boolean res = TRUE; ub4 ret = 0; OCI_CHECK_PTR(OCI_IPC_DEQUEUE, dequeue, 0); OCI_CALL2 ( res, dequeue->typinf->con, OCIAttrGet((dvoid *) dequeue->opth, (ub4 ) OCI_DTYPE_AQDEQ_OPTIONS, (dvoid *) &ret, (ub4 *) NULL, (ub4 ) OCI_ATTR_NAVIGATION, dequeue->typinf->con->err) ) OCI_RESULT(res); return (int) ret; }
boolean OCI_API OCI_MsgSetPriority ( OCI_Msg *msg, int value ) { boolean res = TRUE; sb4 sval = (sb4) value; OCI_CHECK_PTR(OCI_IPC_MSG, msg, FALSE); OCI_CALL2 ( res, msg->typinf->con, OCIAttrSet((dvoid *) msg->proph, (ub4 ) OCI_DTYPE_AQMSG_PROPERTIES, (dvoid *) &sval, (ub4 ) sizeof(sval), (ub4 ) OCI_ATTR_PRIORITY, msg->typinf->con->err) ) OCI_RESULT(res); return res; }
boolean OCI_API OCI_DequeueSetVisibility ( OCI_Dequeue *dequeue, unsigned int visibility ) { boolean res = TRUE; ub4 value = (ub4) visibility; OCI_CHECK_PTR(OCI_IPC_DEQUEUE, dequeue, FALSE); OCI_CALL2 ( res, dequeue->typinf->con, OCIAttrSet((dvoid *) dequeue->opth, (ub4 ) OCI_DTYPE_AQDEQ_OPTIONS, (dvoid *) &value, (ub4 ) 0, (ub4 ) OCI_ATTR_VISIBILITY, dequeue->typinf->con->err) ) OCI_RESULT(res); return res; }
boolean OCI_API OCI_MsgSetSender ( OCI_Msg *msg, OCI_Agent *sender ) { boolean res = TRUE; OCI_CHECK_PTR(OCI_IPC_MSG, msg, FALSE); OCI_CALL2 ( res, msg->typinf->con, OCIAttrSet((dvoid *) msg->proph, (ub4 ) OCI_DTYPE_AQMSG_PROPERTIES, (dvoid *) (sender ? sender->handle : NULL), (ub4 ) 0, (ub4 ) OCI_ATTR_SENDER_ID, msg->typinf->con->err) ) OCI_RESULT(res); return res; }
int OCI_API OCI_MsgGetPriority ( OCI_Msg *msg ) { boolean res = TRUE; sb4 ret = 0; OCI_CHECK_PTR(OCI_IPC_MSG, msg, 0); OCI_CALL2 ( res, msg->typinf->con, OCIAttrGet((dvoid *) msg->proph, (ub4 ) OCI_DTYPE_AQMSG_PROPERTIES, (dvoid *) &ret, (ub4 *) NULL, (ub4 ) OCI_ATTR_PRIORITY, msg->typinf->con->err) ) OCI_RESULT(res); return (int) ret; }
boolean OCI_API OCI_DequeueSetRelativeMsgID ( OCI_Dequeue *dequeue, const void *id, unsigned int len ) { boolean res = TRUE; OCIRaw *value = NULL; OCI_CHECK_PTR(OCI_IPC_DEQUEUE, dequeue, FALSE); OCI_CALL2 ( res, dequeue->typinf->con, OCIRawAssignBytes(dequeue->typinf->con->env, dequeue->typinf->con->err, (ub1*) id, (ub4) len, (OCIRaw **) &value) ) OCI_CALL2 ( res, dequeue->typinf->con, OCIAttrSet((dvoid *) dequeue->opth, (ub4 ) OCI_DTYPE_AQDEQ_OPTIONS, (dvoid *) &value, (ub4 ) 0, (ub4 ) OCI_ATTR_DEQ_MSGID, dequeue->typinf->con->err) ) OCI_RESULT(res); return res; }
boolean OCI_API OCI_MsgSetOriginalID ( OCI_Msg *msg, const void *id, unsigned int len ) { boolean res = TRUE; OCIRaw *value = NULL; OCI_CHECK_PTR(OCI_IPC_MSG, msg, FALSE); OCI_CALL2 ( res, msg->typinf->con, OCIRawAssignBytes(msg->typinf->con->env, msg->typinf->con->err, (ub1*) id, (ub4) len, (OCIRaw **) &value) ) OCI_CALL2 ( res, msg->typinf->con, OCIAttrSet((dvoid *) msg->proph, (ub4 ) OCI_DTYPE_AQMSG_PROPERTIES, (dvoid *) &value, (ub4 ) 0, (ub4 ) OCI_ATTR_ORIGINAL_MSGID, msg->typinf->con->err) ) OCI_RESULT(res); return res; }
boolean OCI_API OCI_MsgFree ( OCI_Msg *msg ) { boolean res = TRUE; OCI_CHECK_PTR(OCI_IPC_MSG, msg, FALSE); /* free local OCI_Agent object */ if (msg->sender != NULL) { OCI_AgentFree(msg->sender); } /* free internal OCI_Object handle if payload is not RAW */ if (msg->obj != NULL) { msg->obj->hstate = OCI_OBJECT_ALLOCATED; OCI_ObjectFree(msg->obj); msg->obj = NULL; } /* free message RAW payload if necessary */ if ((msg->typinf->tcode == OCI_UNKNOWN)&& ( msg->id != NULL)) { OCI_CALL2 ( res, msg->typinf->con, OCIRawResize(msg->typinf->con->env, msg->typinf->con->err, 0, (OCIRaw **) &msg->payload) ) } /* free message ID */ if (msg->id != NULL) { OCI_CALL2 ( res, msg->typinf->con, OCIRawResize(msg->typinf->con->env, msg->typinf->con->err, 0, (OCIRaw **) &msg->id) ) } msg->id = NULL; /* free OCI descriptor */ OCI_DescriptorFree((dvoid *) msg->proph, OCI_DTYPE_AQMSG_PROPERTIES); OCI_FREE(msg); return res; }
OCI_DirPath * OCI_API OCI_DirPathCreate ( OCI_TypeInfo *typinf, const mtext *partition, unsigned int nb_cols, unsigned int nb_rows ) { OCI_DirPath *dp = NULL; void *ostr = NULL; int osize = -1; boolean res = TRUE; OCI_CHECK_PTR(OCI_IPC_TYPE_INFO, typinf, NULL); OCI_CHECK_COMPAT(typinf->con, typinf->type != OCI_TIF_TYPE, NULL); OCI_CHECK_BOUND(typinf->con, nb_cols, 1, typinf->nb_cols, NULL); /* allocate direct path structure */ dp = (OCI_DirPath *) OCI_MemAlloc(OCI_IPC_DIRPATH, sizeof(*dp), (size_t) 1, TRUE); if (dp != NULL) { dp->con = typinf->con; dp->status = OCI_DPS_NOT_PREPARED; dp->typinf = typinf; dp->nb_rows = (ub2) nb_rows; dp->nb_cols = (ub2) nb_cols; dp->nb_cur = (ub2) dp->nb_rows; dp->err_col = 0; dp->err_row = 0; dp->nb_prcsd = 0; /* allocates direct context handle */ if (res == TRUE) { res = (OCI_SUCCESS == OCI_HandleAlloc((dvoid *) dp->con->env, (dvoid **) (void *) &dp->ctx, (ub4) OCI_HTYPE_DIRPATH_CTX, (size_t) 0, (dvoid **) NULL)); } /* set table name attribute */ if (res == TRUE) { osize = -1; ostr = OCI_GetInputMetaString(dp->typinf->name, &osize); OCI_CALL2 ( res, dp->con, OCIAttrSet((dvoid *) dp->ctx, (ub4) OCI_HTYPE_DIRPATH_CTX, (dvoid *) ostr, (ub4) osize, (ub4) OCI_ATTR_NAME, dp->con->err) ) OCI_ReleaseMetaString(ostr); } /* set schema name attribute */ if ((res == TRUE) && (dp->typinf->schema != NULL) && (dp->typinf->schema[0] != 0)) { osize = -1; ostr = OCI_GetInputMetaString(dp->typinf->schema, &osize); OCI_CALL2 ( res, dp->con, OCIAttrSet((dvoid *) dp->ctx, (ub4) OCI_HTYPE_DIRPATH_CTX, (dvoid *) ostr, (ub4) osize, (ub4) OCI_ATTR_SCHEMA_NAME, dp->con->err) ) OCI_ReleaseMetaString(ostr); } /* set partition name attribute */ if ((res == TRUE) && (partition != NULL) && (partition[0] != 0)) { osize = -1; ostr = OCI_GetInputMetaString(partition, &osize); OCI_CALL2 ( res, dp->con, OCIAttrSet((dvoid *) dp->ctx, (ub4) OCI_HTYPE_DIRPATH_CTX, (dvoid *) ostr, (ub4) osize, (ub4) OCI_ATTR_SUB_NAME, dp->con->err) ) OCI_ReleaseMetaString(ostr); } if (OCILib.version_runtime >= OCI_9_0) { ub4 num_rows = dp->nb_rows; /* set array size attribute */ OCI_CALL2 ( res, dp->con, OCIAttrSet((dvoid *) dp->ctx, (ub4) OCI_HTYPE_DIRPATH_CTX, (dvoid *) &num_rows, (ub4) sizeof(num_rows), (ub4) OCI_ATTR_NUM_ROWS, dp->con->err) ) }
boolean OCI_FileGetInfo ( OCI_File *file ) { boolean res = TRUE; OCI_CHECK_PTR(OCI_IPC_FILE, file, FALSE); /* directory name */ if (file->dir == NULL) { if (res == TRUE) { file->dir = (mtext *) OCI_MemAlloc(OCI_IPC_STRING, sizeof(mtext), (size_t) (OCI_SIZE_DIRECTORY + 1), TRUE); res = (file->dir != NULL); } } else { file->dir[0] = 0; } /* file name */ if (file->name == NULL) { if (res == TRUE) { file->name = (mtext *) OCI_MemAlloc(OCI_IPC_STRING, sizeof(mtext), (size_t)( OCI_SIZE_FILENAME + 1), TRUE); res = (file->name != NULL); } } else { file->name[0] = 0; } /* retrieve name */ if (res == TRUE) { void *ostr1 = NULL; void *ostr2 = NULL; int osize1 = 0; int osize2 = 0; ub2 usize1 = 0; ub2 usize2 = 0; osize1 = (int ) OCI_SIZE_DIRECTORY * (int) sizeof(mtext); ostr1 = (void *) OCI_GetInputMetaString(file->dir, &osize1); osize2 = (int ) OCI_SIZE_FILENAME * (int) sizeof(mtext); ostr2 = (void *) OCI_GetInputMetaString(file->name, &osize1); usize1 = (ub2) osize1; usize2 = (ub2) osize2; OCI_CALL2 ( res, file->con, OCILobFileGetName(file->con->env, file->con->err, file->handle, (OraText *) ostr1, (ub2*) &usize1, (OraText *) ostr2, (ub2*) &usize2) ) osize1 = (int) usize1; osize2 = (int) usize2; OCI_GetOutputMetaString(ostr1, file->dir, &osize1); OCI_GetOutputMetaString(ostr2, file->name, &osize2); OCI_ReleaseMetaString(ostr1); OCI_ReleaseMetaString(ostr2); } return res; }