/************************************************************** * Protected functions **************************************************************/ v_qos u_qosNew( v_qos tmpl) { v_qos q; q = NULL; if (tmpl != NULL) { switch (tmpl->kind) { case V_PARTITION_QOS: q = (v_qos)u_partitionQosNew((v_partitionQos)tmpl); break; case V_PARTICIPANT_QOS: q = (v_qos)u_participantQosNew((v_participantQos)tmpl); break; case V_TOPIC_QOS: q = (v_qos)u_topicQosNew((v_topicQos)tmpl); break; case V_WRITER_QOS: q = (v_qos)u_writerQosNew((v_writerQos)tmpl); break; case V_READER_QOS: q = (v_qos)u_readerQosNew((v_readerQos)tmpl); break; case V_PUBLISHER_QOS: q = (v_qos)u_publisherQosNew((v_publisherQos)tmpl); break; case V_SUBSCRIBER_QOS: q = (v_qos)u_subscriberQosNew((v_subscriberQos)tmpl); break; case V_DATAVIEW_QOS: q = (v_qos)u_dataViewQosNew((v_dataViewQos)tmpl); break; default: OS_REPORT_1(OS_ERROR, "u_qosNew", 0, "unsupported qos %d", tmpl->kind); break; } } return q; }
u_result u_topicGetQos ( const u_topic _this, u_topicQos *qos) { u_result result; v_topic vTopic; v_topicQos vQos; assert(_this); assert(qos); result = u_topicReadClaim(_this, &vTopic, C_MM_RESERVATION_ZERO); if (result == U_RESULT_OK) { vQos = v_topicGetQos(vTopic); *qos = u_topicQosNew(vQos); c_free(vQos); u_topicRelease(_this, C_MM_RESERVATION_ZERO); } return result; }