elm/specialist_adapter.cpp¶
SpecialistAdapter implementation — delegates to ISpecialist via composition. More...
Namespaces¶
| Name |
|---|
| sgns |
| sgns::neoswarm |
| sgns::neoswarm::elm |
Detailed Description¶
SpecialistAdapter implementation — delegates to ISpecialist via composition.
Date: 2026-07-17
Source code¶
#include "specialist_adapter.hpp"
#include "common/logging.hpp"
namespace sgns::neoswarm::elm
{
namespace
{
auto SpecialistLogger()
{
return neoswarm::CreateLogger( "SpecialistAdapter" );
}
} // namespace
SpecialistAdapter::SpecialistAdapter( std::shared_ptr<specialists::ISpecialist> specialist,
ELMRole role,
const std::string& name )
: m_specialist( std::move( specialist ) )
, m_role( role )
, m_name( name )
{
}
outcome::result<void> SpecialistAdapter::Load( const std::string& model_path )
{
if ( !m_specialist )
{
return outcome::failure( Error::ModelLoadFailed );
}
return m_specialist->Load( model_path );
}
outcome::result<std::string> SpecialistAdapter::Process( const std::string& input, const ELMContext& /*ctx*/ )
{
if ( !m_specialist )
{
m_lastConfidence = 0.0f;
return outcome::failure( Error::InternalError );
}
auto result = m_specialist->Process( input );
if ( result.has_value() )
{
m_lastConfidence = m_specialist->GetConfidence();
}
else
{
m_lastConfidence = 0.0f;
return outcome::failure( Error::InternalError );
}
return result;
}
} // namespace sgns::neoswarm::elm
Updated on 2026-10-09 at 03:59:42 +0000