#include "dpiImpl.h"
int dpiDeqOptions__create(dpiDeqOptions *options, dpiConn *conn,
dpiError *error)
{
dpiGen__setRefCount(conn, error, 1);
options->conn = conn;
return dpiOci__descriptorAlloc(conn->env->handle, &options->handle,
DPI_OCI_DTYPE_AQDEQ_OPTIONS, "allocate descriptor", error);
}
void dpiDeqOptions__free(dpiDeqOptions *options, dpiError *error)
{
if (options->msgIdRaw) {
dpiOci__rawResize(options->env->handle, &options->msgIdRaw, 0, error);
options->msgIdRaw = NULL;
}
if (options->handle) {
dpiOci__descriptorFree(options->handle, DPI_OCI_DTYPE_AQDEQ_OPTIONS);
options->handle = NULL;
}
if (options->conn) {
dpiGen__setRefCount(options->conn, error, -1);
options->conn = NULL;
}
dpiUtils__freeMemory(options);
}
static int dpiDeqOptions__getAttrValue(dpiDeqOptions *options,
uint32_t attribute, const char *fnName, void *value,
uint32_t *valueLength)
{
dpiError error;
int status;
if (dpiGen__startPublicFn(options, DPI_HTYPE_DEQ_OPTIONS, fnName,
&error) < 0)
return dpiGen__endPublicFn(options, DPI_FAILURE, &error);
DPI_CHECK_PTR_NOT_NULL(options, value)
DPI_CHECK_PTR_NOT_NULL(options, valueLength)
status = dpiOci__attrGet(options->handle, DPI_OCI_DTYPE_AQDEQ_OPTIONS,
value, valueLength, attribute, "get attribute value", &error);
return dpiGen__endPublicFn(options, status, &error);
}
static int dpiDeqOptions__setAttrValue(dpiDeqOptions *options,
uint32_t attribute, const char *fnName, const void *value,
uint32_t valueLength)
{
dpiError error;
int status;
if (dpiGen__startPublicFn(options, DPI_HTYPE_DEQ_OPTIONS, fnName,
&error) < 0)
return dpiGen__endPublicFn(options, DPI_FAILURE, &error);
DPI_CHECK_PTR_NOT_NULL(options, value)
status = dpiOci__attrSet(options->handle, DPI_OCI_DTYPE_AQDEQ_OPTIONS,
(void*) value, valueLength, attribute, "set attribute value",
&error);
return dpiGen__endPublicFn(options, status, &error);
}
int dpiDeqOptions_addRef(dpiDeqOptions *options)
{
return dpiGen__addRef(options, DPI_HTYPE_DEQ_OPTIONS, __func__);
}
int dpiDeqOptions_getCondition(dpiDeqOptions *options, const char **value,
uint32_t *valueLength)
{
return dpiDeqOptions__getAttrValue(options, DPI_OCI_ATTR_DEQCOND, __func__,
(void*) value, valueLength);
}
int dpiDeqOptions_getConsumerName(dpiDeqOptions *options, const char **value,
uint32_t *valueLength)
{
return dpiDeqOptions__getAttrValue(options, DPI_OCI_ATTR_CONSUMER_NAME,
__func__, (void*) value, valueLength);
}
int dpiDeqOptions_getCorrelation(dpiDeqOptions *options, const char **value,
uint32_t *valueLength)
{
return dpiDeqOptions__getAttrValue(options, DPI_OCI_ATTR_CORRELATION,
__func__, (void*) value, valueLength);
}
int dpiDeqOptions_getMode(dpiDeqOptions *options, dpiDeqMode *value)
{
uint32_t valueLength = sizeof(uint32_t);
return dpiDeqOptions__getAttrValue(options, DPI_OCI_ATTR_DEQ_MODE,
__func__, value, &valueLength);
}
int dpiDeqOptions_getMsgId(dpiDeqOptions *options, const char **value,
uint32_t *valueLength)
{
dpiError error;
void *rawValue;
if (dpiGen__startPublicFn(options, DPI_HTYPE_DEQ_OPTIONS, __func__,
&error) < 0)
return dpiGen__endPublicFn(options, DPI_FAILURE, &error);
DPI_CHECK_PTR_NOT_NULL(options, value)
DPI_CHECK_PTR_NOT_NULL(options, valueLength)
if (dpiOci__attrGet(options->handle, DPI_OCI_DTYPE_AQDEQ_OPTIONS,
&rawValue, NULL, DPI_OCI_ATTR_DEQ_MSGID, "get attribute value",
&error) < 0)
return dpiGen__endPublicFn(options, DPI_FAILURE, &error);
dpiOci__rawPtr(options->env->handle, rawValue, (void**) value);
dpiOci__rawSize(options->env->handle, rawValue, valueLength);
return dpiGen__endPublicFn(options, DPI_SUCCESS, &error);
}
int dpiDeqOptions_getNavigation(dpiDeqOptions *options,
dpiDeqNavigation *value)
{
uint32_t valueLength = sizeof(uint32_t);
return dpiDeqOptions__getAttrValue(options, DPI_OCI_ATTR_NAVIGATION,
__func__, value, &valueLength);
}
int dpiDeqOptions_getTransformation(dpiDeqOptions *options, const char **value,
uint32_t *valueLength)
{
return dpiDeqOptions__getAttrValue(options, DPI_OCI_ATTR_TRANSFORMATION,
__func__, (void*) value, valueLength);
}
int dpiDeqOptions_getVisibility(dpiDeqOptions *options, dpiVisibility *value)
{
uint32_t valueLength = sizeof(uint32_t);
return dpiDeqOptions__getAttrValue(options, DPI_OCI_ATTR_VISIBILITY,
__func__, value, &valueLength);
}
int dpiDeqOptions_getWait(dpiDeqOptions *options, uint32_t *value)
{
uint32_t valueLength = sizeof(uint32_t);
return dpiDeqOptions__getAttrValue(options, DPI_OCI_ATTR_WAIT, __func__,
value, &valueLength);
}
int dpiDeqOptions_release(dpiDeqOptions *options)
{
return dpiGen__release(options, DPI_HTYPE_DEQ_OPTIONS, __func__);
}
int dpiDeqOptions_setCondition(dpiDeqOptions *options, const char *value,
uint32_t valueLength)
{
return dpiDeqOptions__setAttrValue(options, DPI_OCI_ATTR_DEQCOND, __func__,
value, valueLength);
}
int dpiDeqOptions_setConsumerName(dpiDeqOptions *options, const char *value,
uint32_t valueLength)
{
return dpiDeqOptions__setAttrValue(options, DPI_OCI_ATTR_CONSUMER_NAME,
__func__, value, valueLength);
}
int dpiDeqOptions_setCorrelation(dpiDeqOptions *options, const char *value,
uint32_t valueLength)
{
return dpiDeqOptions__setAttrValue(options, DPI_OCI_ATTR_CORRELATION,
__func__, value, valueLength);
}
int dpiDeqOptions_setDeliveryMode(dpiDeqOptions *options,
dpiMessageDeliveryMode value)
{
return dpiDeqOptions__setAttrValue(options, DPI_OCI_ATTR_MSG_DELIVERY_MODE,
__func__, &value, 0);
}
int dpiDeqOptions_setMode(dpiDeqOptions *options, dpiDeqMode value)
{
return dpiDeqOptions__setAttrValue(options, DPI_OCI_ATTR_DEQ_MODE,
__func__, &value, 0);
}
int dpiDeqOptions_setMsgId(dpiDeqOptions *options, const char *value,
uint32_t valueLength)
{
dpiError error;
int status;
if (dpiGen__startPublicFn(options, DPI_HTYPE_DEQ_OPTIONS, __func__,
&error) < 0)
return dpiGen__endPublicFn(options, DPI_FAILURE, &error);
DPI_CHECK_PTR_NOT_NULL(options, value)
if (dpiOci__rawAssignBytes(options->env->handle, value, valueLength,
&options->msgIdRaw, &error) < 0)
return dpiGen__endPublicFn(options, DPI_FAILURE, &error);
status = dpiOci__attrSet(options->handle, DPI_OCI_DTYPE_AQDEQ_OPTIONS,
(void*) &options->msgIdRaw, valueLength, DPI_OCI_ATTR_DEQ_MSGID,
"set value", &error);
return dpiGen__endPublicFn(options, status, &error);
}
int dpiDeqOptions_setNavigation(dpiDeqOptions *options, dpiDeqNavigation value)
{
return dpiDeqOptions__setAttrValue(options, DPI_OCI_ATTR_NAVIGATION,
__func__, &value, 0);
}
int dpiDeqOptions_setTransformation(dpiDeqOptions *options, const char *value,
uint32_t valueLength)
{
return dpiDeqOptions__setAttrValue(options, DPI_OCI_ATTR_TRANSFORMATION,
__func__, value, valueLength);
}
int dpiDeqOptions_setVisibility(dpiDeqOptions *options, dpiVisibility value)
{
return dpiDeqOptions__setAttrValue(options, DPI_OCI_ATTR_VISIBILITY,
__func__, &value, 0);
}
int dpiDeqOptions_setWait(dpiDeqOptions *options, uint32_t value)
{
return dpiDeqOptions__setAttrValue(options, DPI_OCI_ATTR_WAIT, __func__,
&value, 0);
}