git.fiddlerwoaroof.com
session.h
bb80149c
 #ifndef _SESSION_H_
 #define _SESSION_H_
 
 #include <string>
 
 #include "request.h"
 #include "sys_pam.h"
 
328af6e0
 class sessions_ifc {
bb80149c
     public:
328af6e0
         virtual ~sessions_ifc () {}
bb80149c
         virtual std::string user_name (const pam_request &request)  const {
             return "";
         }
 };
 
328af6e0
 class sessions {
bb80149c
     private:
328af6e0
         std::shared_ptr<sessions_ifc> delegate_;
bb80149c
     public:
328af6e0
         sessions(std::shared_ptr<sessions_ifc> delegate = std::make_shared<sessions_ifc>()) : delegate_(delegate) {}
bb80149c
         std::string user_name (const pam_request &request) const {
             return delegate_->user_name(request);
         }
328af6e0
         static sessions create(const pam &pam);
bb80149c
 };
 
 #endif