From fda90bd725813e86cde2a06c9b94b52ecdbd21d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hauke=20Kr=C3=BCger?= Date: Fri, 9 Feb 2024 17:41:10 +0100 Subject: [PATCH] Extracted no mex template functions in externalCall lib. --- .../jvxLexternalCall/CMakeLists.txt | 1 + .../include/CjvxMexCallsProfileNoMexTpl.h | 47 +++++++++++++++++++ .../include/CjvxMexCallsProfileTpl.h | 2 + 3 files changed, 50 insertions(+) create mode 100644 sources/jvxLibraries/jvxLexternalCall/include/CjvxMexCallsProfileNoMexTpl.h diff --git a/sources/jvxLibraries/jvxLexternalCall/CMakeLists.txt b/sources/jvxLibraries/jvxLexternalCall/CMakeLists.txt index 8e3ed4fb..17f335c3 100644 --- a/sources/jvxLibraries/jvxLexternalCall/CMakeLists.txt +++ b/sources/jvxLibraries/jvxLexternalCall/CMakeLists.txt @@ -16,6 +16,7 @@ set(LOCAL_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/include/CjvxMexCallsProfileInterfacing.h ${CMAKE_CURRENT_SOURCE_DIR}/include/CjvxMexCallsProfileTpl.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/CjvxMexCallsProfileNoMexTpl.h ) set(LOCAL_PCG_FILES diff --git a/sources/jvxLibraries/jvxLexternalCall/include/CjvxMexCallsProfileNoMexTpl.h b/sources/jvxLibraries/jvxLexternalCall/include/CjvxMexCallsProfileNoMexTpl.h new file mode 100644 index 00000000..7bc9fd58 --- /dev/null +++ b/sources/jvxLibraries/jvxLexternalCall/include/CjvxMexCallsProfileNoMexTpl.h @@ -0,0 +1,47 @@ +#ifndef __CJVXMEXCALLSPROFILENOMEXTPL_H__ +#define __CJVXMEXCALLSPROFILENOMEXTPL_H__ + +#include "CjvxMexCallsProfileInterfacing.h" + +template +class CjvxMexCallsProfileNoMexTpl : public T, public CjvxMexCallsProfileInterfacing +{ +protected: + +public: + JVX_CALLINGCONVENTION CjvxMexCallsProfileNoMexTpl(JVX_CONSTRUCTOR_ARGUMENTS_MACRO_DECLARE) : + T(JVX_CONSTRUCTOR_ARGUMENTS_MACRO_CALL) {}; + + jvxErrorType prepare_connect_icon(JVX_CONNECTION_FEEDBACK_TYPE(fdb)) + { + jvxErrorType res = T::prepare_connect_icon(JVX_CONNECTION_FEEDBACK_CALL(fdb)); + if (res == JVX_NO_ERROR) + { + res = local_prepare_connect_icon(JVX_CONNECTION_FEEDBACK_CALL(fdb)); + } + return res; + }; + + jvxErrorType postprocess_connect_icon(JVX_CONNECTION_FEEDBACK_TYPE(fdb)) + { + jvxErrorType res = T::postprocess_connect_icon(JVX_CONNECTION_FEEDBACK_CALL(fdb)); + if (res == JVX_NO_ERROR) + { + res = local_postprocess_connect_icon(JVX_CONNECTION_FEEDBACK_CALL(fdb)); + } + return res; + }; + + jvxErrorType process_buffers_icon(jvxSize mt_mask, jvxSize idx_stage) + { + jvxErrorType res = JVX_NO_ERROR; + + // Run core algorithm in C + res = local_process_buffers_icon(mt_mask, idx_stage); + + // Forward calling chain + return fwd_process_buffers_icon(mt_mask, idx_stage); + }; +}; + +#endif diff --git a/sources/jvxLibraries/jvxLexternalCall/include/CjvxMexCallsProfileTpl.h b/sources/jvxLibraries/jvxLexternalCall/include/CjvxMexCallsProfileTpl.h index f29382a7..bc9f9437 100644 --- a/sources/jvxLibraries/jvxLexternalCall/include/CjvxMexCallsProfileTpl.h +++ b/sources/jvxLibraries/jvxLexternalCall/include/CjvxMexCallsProfileTpl.h @@ -4,6 +4,8 @@ #include "CjvxMexCallsProfileInterfacing.h" #include "CjvxMexCallsTpl.h" +// ================================================================================================ + template class CjvxMexCallsProfileTpl : public CjvxMexCallsTpl, public CjvxMexCallsProfileInterfacing {