diff --git a/include/FluidSCWrapper.hpp b/include/FluidSCWrapper.hpp index dec2057..a9ba21e 100644 --- a/include/FluidSCWrapper.hpp +++ b/include/FluidSCWrapper.hpp @@ -950,10 +950,8 @@ class FluidSCWrapper : public impl::FluidSCWrapperBase ReturnType{invokeImpl(m->wrapper, m->args, IndexList{})}; if (!m->result.ok()) - { printResult(m->wrapper, m->result); - return false; - } + return true; }, [](World* world, void* data) // RT thread: response @@ -962,7 +960,15 @@ class FluidSCWrapper : public impl::FluidSCWrapperBase MessageDescriptor::template forEachArg(m->args, world); - messageOutput(m->wrapper, m->name, m->result); + + if(m->result.status() != Result::Status::kError) + messageOutput(m->wrapper, m->name, m->result); + else + { + auto ft = getInterfaceTable(); + ft->fSendNodeReply(&m->wrapper->mParent->mNode, + -1, m->name.c_str(),0, nullptr); + } return true; }, nullptr, // NRT Thread: No-op @@ -977,6 +983,8 @@ class FluidSCWrapper : public impl::FluidSCWrapperBase { return x->mClient.template invoke(x->mClient, std::get(args)...); } + + template // call from RT static void messageOutput(FluidSCWrapper* x, const std::string& s,