#pragma once #include #include #include #include #include namespace rublon { using PAM = LinuxPam; using Session = SessionBase>; using Transaction = TransactionBase; class RublonFactory{ public: tl::expected startSession(const PAM &pam){ details::initLog(); auto config = ConfigurationFactory{}.systemConfig(); if(not config.has_value()) { pam.print("The configuration file does not exist or contains incorrect values"); return tl::unexpected{ConfigurationError{}}; } return Session{pam, config.value()}; } }; } // namespace rublon #include