u_bool u_topicContentFilterValidate2 ( const u_topic _this, const q_expr expr, const c_value params[], os_uint32 nrOfParams) { v_topic topic; u_bool result; v_filter filter; u_result uResult; assert(_this); assert(expr); result = FALSE; filter = NULL; uResult = u_topicReadClaim(_this, &topic, C_MM_RESERVATION_LOW); if (uResult == U_RESULT_OK) { assert(topic); filter = v_filterNew(v_topicMessageType(topic), v_topicMessageKeyList(topic), expr, params, nrOfParams); u_topicRelease(_this, C_MM_RESERVATION_LOW); } if (filter != NULL) { result = TRUE; c_free(filter); } return result; }
c_bool u_topicContentFilterValidate ( u_topic _this, q_expr expr, c_value params[]) { v_topic topic; c_type type; c_bool result; q_expr subexpr, term; int i; v_filter filter; u_result uResult; result = FALSE; filter = NULL; uResult = u_entityReadClaim(u_entity(_this), (v_entity*)(&topic)); if (uResult == U_RESULT_OK) { assert(topic); type = v_topicMessageType(topic); i = 0; subexpr = q_getPar(expr, i); /* get rid of Q_EXPR_PROGRAM */ while ((term = q_getPar(subexpr, i++)) != NULL) { if (q_getTag(term) == Q_EXPR_WHERE) { filter = v_filterNew(topic, term, params); } } u_entityRelease(u_entity(_this)); } if (filter != NULL) { result = TRUE; c_free(filter); } return result; }
u_bool u_topicContentFilterValidate ( const u_topic _this, const q_expr expr, const c_value params[], os_uint32 nrOfParams) { v_topic topic; u_bool result; q_expr subexpr, term; int i; v_filter filter; u_result uResult; assert(_this); assert(expr); result = FALSE; filter = NULL; uResult = u_topicReadClaim(_this, &topic, C_MM_RESERVATION_LOW); if (uResult == U_RESULT_OK) { assert(topic); i = 0; subexpr = q_getPar(expr, i); /* get rid of Q_EXPR_PROGRAM */ while ((term = q_getPar(subexpr, i++)) != NULL) { if (q_getTag(term) == Q_EXPR_WHERE) { filter = v_filterNew(v_topicMessageType(topic), v_topicMessageKeyList(topic), term, params, nrOfParams); } } u_topicRelease(_this, C_MM_RESERVATION_LOW); } if (filter != NULL) { result = TRUE; c_free(filter); } return result; }