Skip to content

Commit

Permalink
Add argument forwarding in CGenFunctionBlock constructors
Browse files Browse the repository at this point in the history
Also forward initialize() to base class after interface has been set up.
  • Loading branch information
mx990 authored and azoitl committed Jun 13, 2024
1 parent 4f13b04 commit 5a42df2
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 26 deletions.
21 changes: 19 additions & 2 deletions src/core/genfb.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,27 @@ class CGenFunctionBlock : public T {
}

protected:
CGenFunctionBlock(forte::core::CFBContainer &paContainer, const CStringDictionary::TStringId paInstanceNameId);
template<typename... Args>
CGenFunctionBlock(forte::core::CFBContainer &paContainer, const CStringDictionary::TStringId paInstanceNameId,
Args &&... args) :
T(paContainer, nullptr, paInstanceNameId, std::forward<Args>(args)...),
mEOConns(nullptr), mDIConns(nullptr), mDOConns(nullptr), mDIs(nullptr), mDOs(nullptr),
mAdapters(nullptr),
mConfiguredFBTypeNameId(CStringDictionary::scmInvalidStringId),
mGenInterfaceSpec(),
mFBConnData(nullptr), mFBVarsData(nullptr) {
}

template<typename... Args>
CGenFunctionBlock(forte::core::CFBContainer &paContainer, const SFBInterfaceSpec *paInterfaceSpec,
const CStringDictionary::TStringId paInstanceNameId);
const CStringDictionary::TStringId paInstanceNameId, Args &&... args) :
T(paContainer, paInterfaceSpec, paInstanceNameId, std::forward<Args>(args)...),
mEOConns(nullptr), mDIConns(nullptr), mDOConns(nullptr), mDIs(nullptr), mDOs(nullptr),
mAdapters(nullptr),
mConfiguredFBTypeNameId(CStringDictionary::scmInvalidStringId),
mGenInterfaceSpec(),
mFBConnData(nullptr), mFBVarsData(nullptr) {
}

~CGenFunctionBlock() override;

Expand Down
25 changes: 1 addition & 24 deletions src/core/genfb.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,6 @@
#include "forte_any_gen.cpp"
#endif

template<class T>
CGenFunctionBlock<T>::CGenFunctionBlock(forte::core::CFBContainer &paContainer, const CStringDictionary::TStringId paInstanceNameId) :
T(paContainer, nullptr, paInstanceNameId),
mEOConns(nullptr), mDIConns(nullptr), mDOConns(nullptr), mDIs(nullptr), mDOs(nullptr),
mAdapters(nullptr),
mConfiguredFBTypeNameId(CStringDictionary::scmInvalidStringId),
mGenInterfaceSpec(),
mFBConnData(nullptr), mFBVarsData(nullptr)
{
}

template<class T>
CGenFunctionBlock<T>::CGenFunctionBlock(forte::core::CFBContainer &paContainer, const SFBInterfaceSpec *paInterfaceSpec,
const CStringDictionary::TStringId paInstanceNameId) :
T(paContainer, paInterfaceSpec, paInstanceNameId),
mEOConns(nullptr), mDIConns(nullptr), mDOConns(nullptr), mDIs(nullptr), mDOs(nullptr),
mAdapters(nullptr),
mConfiguredFBTypeNameId(CStringDictionary::scmInvalidStringId),
mGenInterfaceSpec(),
mFBConnData(nullptr), mFBVarsData(nullptr)
{
}

template<class T>
CGenFunctionBlock<T>::~CGenFunctionBlock(){
if(nullptr != T::mInterfaceSpec){
Expand All @@ -48,7 +25,7 @@ CGenFunctionBlock<T>::~CGenFunctionBlock(){
template<class T>
bool CGenFunctionBlock<T>::initialize() {
setupFBInterface(T::mInterfaceSpec);
return true;
return T::initialize();
}

template<class T>
Expand Down

0 comments on commit 5a42df2

Please sign in to comment.