v_result v_subscriberEnable ( v_subscriber _this) { v_kernel kernel; c_iter list; c_char *partitionName; v_result result = V_RESULT_ILL_PARAM; if (_this) { kernel = v_objectKernel(_this); v_observableAddObserver(v_observable(kernel->groupSet), v_observer(_this), NULL); if (_this->qos->partition != NULL) { list = v_partitionPolicySplit(_this->qos->partition); while((partitionName = c_iterTakeFirst(list)) != NULL) { v_subscriberSubscribe(_this,partitionName); os_free(partitionName); } c_iterFree(list); } result = V_RESULT_OK; } return result; }
u_result u_subscriberSubscribe( u_subscriber _this, const c_char *partitionExpr) { v_subscriber ks = NULL; u_result result; result= u_entityWriteClaim(u_entity(_this),(v_entity*)(&ks)); if (result == U_RESULT_OK) { assert(ks); v_subscriberSubscribe(ks,partitionExpr); result = u_entityRelease(u_entity(_this)); } else { OS_REPORT(OS_WARNING, "u_subscriberSubscribe", 0, "Could not claim subscriber."); } return result; }