void
PublisherDelegate::begin_coherent_changes()
{
    this->check();
    u_result uResult = u_publisherCoherentBegin(u_publisher(this->userHandle));
    ISOCPP_U_RESULT_CHECK_AND_THROW(uResult, "Could not begin coherent changes.");
}
gapi_returnCode_t
gapi_publisher_begin_coherent_changes (
    gapi_publisher _this)
{
    _Publisher publisher;
    gapi_returnCode_t result = GAPI_RETCODE_BAD_PARAMETER;
    u_result uResult;

    publisher  = gapi_publisherClaim(_this, &result);

    if ( publisher != NULL ) {
        if ( _EntityEnabled(publisher)) {
            uResult = u_publisherCoherentBegin(U_PUBLISHER_GET(publisher));
            result = kernelResultToApiResult(uResult);
        } else {
            result = GAPI_RETCODE_NOT_ENABLED;
        }
    }
    _EntityRelease(publisher);

    return result;
}