#pragma once #include #include namespace rublon { template < typename Impl > class AuthenticationStep { public: template < typename Handler_t > auto fire(const CoreHandlerInterface< Handler_t > & coreHandler) { // log step log(Info, "Starting %s step", static_cast< Impl * >(this)->name); return static_cast< Impl * >(this)->handle(coreHandler); } }; } // namespace rublon