10Duke Scale C++ Client
Loading...
Searching...
No Matches
OIDCSessionConfiguration.h
1#ifndef TENDUKE_OIDC_OIDCSESSIONCONFIGURATION_H
2#define TENDUKE_OIDC_OIDCSESSIONCONFIGURATION_H
3
4#include "./OIDCSessionEventListener.h"
5
6#include <chrono>
7#include <memory>
8#include <string>
9
10namespace tenduke { namespace oidc {
11
16{
17public:
22 : loginTimeout(std::chrono::minutes(5))
23 , concurrencyTimeout(std::chrono::minutes(6))
24 , sessionEventListener(nullptr)
25 {}
26
34 const std::chrono::seconds &loginTimeout,
35 const std::chrono::seconds &concurrencyTimeout,
36 const std::shared_ptr<::tenduke::oidc::OIDCSessionEventListener> &sessionEventListener
40 {}
41
43 const std::chrono::seconds loginTimeout;
45 const std::chrono::seconds concurrencyTimeout;
47 const std::shared_ptr<::tenduke::oidc::OIDCSessionEventListener> sessionEventListener;
48
52 class Builder
53 {
54 public:
60 Builder & timeoutConcurrentActionsAfter(const std::chrono::seconds &timeout)
61 {
62 concurrencyTimeout = timeout;
63 return *this;
64 }
65
71 Builder & timeoutLoginAfter(const std::chrono::seconds &timeout)
72 {
73 loginTimeout = timeout;
74 return *this;
75 }
76
82 Builder & listenEventsWith(const std::shared_ptr<::tenduke::oidc::OIDCSessionEventListener> &listener)
83 {
84 sessionEventListener = listener;
85 return *this;
86 }
87
93 {
95 loginTimeout,
96 concurrencyTimeout,
97 sessionEventListener
98 );
99 }
100
101 private:
102 std::chrono::seconds concurrencyTimeout;
103 std::chrono::seconds loginTimeout;
104 std::shared_ptr<::tenduke::oidc::OIDCSessionEventListener> sessionEventListener;
105 };
106};
107
108
109}} // oidc
110
111#endif //TENDUKE_OIDC_OIDCSESSIONCONFIGURATION_H
Builder for the configuration.
Definition OIDCSessionConfiguration.h:53
Builder & listenEventsWith(const std::shared_ptr<::tenduke::oidc::OIDCSessionEventListener > &listener)
Sets session event listener.
Definition OIDCSessionConfiguration.h:82
Builder & timeoutConcurrentActionsAfter(const std::chrono::seconds &timeout)
Sets the timeout for concurrent actions.
Definition OIDCSessionConfiguration.h:60
Builder & timeoutLoginAfter(const std::chrono::seconds &timeout)
Sets the timeout for login.
Definition OIDCSessionConfiguration.h:71
OIDCSessionConfiguration build()
Builds the configuration.
Definition OIDCSessionConfiguration.h:92
Configuration for tenduke::oidc::OIDCSessionImpl.
Definition OIDCSessionConfiguration.h:16
const std::chrono::seconds concurrencyTimeout
Timeout for concurrent actions of the OIDC session service.
Definition OIDCSessionConfiguration.h:45
OIDCSessionConfiguration(const std::chrono::seconds &loginTimeout, const std::chrono::seconds &concurrencyTimeout, const std::shared_ptr<::tenduke::oidc::OIDCSessionEventListener > &sessionEventListener)
Constructs new instance.
Definition OIDCSessionConfiguration.h:33
const std::chrono::seconds loginTimeout
Login timeout.
Definition OIDCSessionConfiguration.h:43
const std::shared_ptr<::tenduke::oidc::OIDCSessionEventListener > sessionEventListener
Listener for session events.
Definition OIDCSessionConfiguration.h:47
OIDCSessionConfiguration()
No-arg constructs new instance with default values.
Definition OIDCSessionConfiguration.h:21
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7