std::cout<<"providerComponent does not have required "<<InterfaceName<InterfaceT>::Get()<<std::endl;
return0;
}
// connect value interfaces
this->Set(providerInterface);// due to the input argument being uniquely defined in the multiple inheritance tree, all versions of Set() are accessible
return1;
}
//template<typename... Interfaces>
//class Accepting : public Interfaces...
//{
//};
//template<>
//class Accepting<>
//{
//};
//template<typename FirstInterface>
//class Accepting : public InterfaceAcceptor < FirstInterface >
//{
//};
template<typename...RestInterfaces>
classAccepting
{
public:
interfaceStatusConnectFromImpl(constchar*,ComponentBase*){returninterfaceStatus::noaccepter;};//no interface called interfacename ;
std::cout<<"providerComponent does not have required "<<InterfaceName<InterfaceT>::Get()<<std::endl;
return0;
}
// connect value interfaces
this->Set(providerInterface);// due to the input argument being uniquely defined in the multiple inheritance tree, all versions of Set() are accessible at component level
return1;
}
//template<template<typename... RestInterfacesT> class AcceptingT, typename ProvidingT>
// See if the other component has the right interface and try to connect them
if(1==acceptIF->Connect(other))
{
//success. By terminating this function, we assume only one interface listens to interfacename and that one connection with the other component can be made by this name
returninterfaceStatus::success;
}
else
{
// interfacename was found, but other component doesn't match