gapi_returnCode_t gapi_fooDataWriter_dispose ( gapi_fooDataWriter _this, const gapi_foo *instance_data, const gapi_instanceHandle_t handle) { gapi_returnCode_t result = GAPI_RETCODE_BAD_PARAMETER; _DataWriter datawriter; writerInfo data; u_result r; if ( instance_data != NULL ) { datawriter = gapi_dataWriterReadClaim(_this, &result); if ( datawriter != NULL ) { data.writer = datawriter; data.data = (void *)instance_data; r = u_writerDispose (U_WRITER_GET(datawriter), &data, C_TIME_INVALID, handle); _EntityReadRelease(datawriter); result = kernelResultToApiResult(r); } } return result; }
gapi_returnCode_t gapi_fooDataWriter_dispose_w_timestamp ( gapi_fooDataWriter _this, const gapi_foo *instance_data, const gapi_instanceHandle_t handle, const gapi_time_t *source_timestamp) { gapi_returnCode_t result = GAPI_RETCODE_BAD_PARAMETER; _DataWriter datawriter; writerInfo data; c_time timestamp; u_result r; if ( instance_data != NULL ) { result = kernelCopyInTime(source_timestamp, ×tamp); if ( result == GAPI_RETCODE_OK ) { datawriter = gapi_dataWriterReadClaim(_this, &result); if ( datawriter != NULL ) { data.writer = datawriter; data.data = (void *)instance_data; r = u_writerDispose (U_WRITER_GET(datawriter), &data, timestamp, handle); _EntityRelease(datawriter); result = kernelResultToApiResult(r); } } } return result; }
u_result nb_topicObjectWrite( u_writer writer, nb_topicObject _this) { u_result result = U_RESULT_UNSUPPORTED; os_timeW timestamp; assert(writer); nb_objectIsValid(_this); timestamp = _this->writeTime; if(v_stateTest(_this->state, L_REGISTER)){ result = u_writerRegisterInstance( writer, nb_topicObjectCopyIn, _this, timestamp, U_INSTANCEHANDLE_NIL); } else if(v_stateTest(_this->state, L_WRITE) && v_stateTest(_this->state, L_DISPOSED)){ result = u_writerWriteDispose( writer, nb_topicObjectCopyIn, _this, timestamp, U_INSTANCEHANDLE_NIL); } else if(v_stateTest(_this->state, L_WRITE)) { result = u_writerWrite( writer, nb_topicObjectCopyIn, _this, timestamp, U_INSTANCEHANDLE_NIL); } else if(v_stateTest(_this->state, L_DISPOSED)) { result = u_writerDispose( writer, nb_topicObjectCopyIn, _this, timestamp, U_INSTANCEHANDLE_NIL); } return result; }