-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathquestion_policy.cpp
More file actions
37 lines (29 loc) · 909 Bytes
/
Copy pathquestion_policy.cpp
File metadata and controls
37 lines (29 loc) · 909 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "question_policy.hpp"
namespace acecode {
namespace {
QuestionPolicy parse_policy_or_ask(const std::string& value) {
if (value == "deny") return QuestionPolicy::Deny;
if (value == "timeout") return QuestionPolicy::Timeout;
return QuestionPolicy::Ask;
}
int sanitize_timeout_seconds(int v) {
if (v < 5 || v > 3600) return 60;
return v;
}
} // namespace
ResolvedQuestionPolicy resolve_question_policy(
const std::string& configured_policy,
bool policy_explicit,
int configured_timeout_seconds) {
ResolvedQuestionPolicy out;
out.timeout_seconds = sanitize_timeout_seconds(configured_timeout_seconds);
if (policy_explicit) {
out.policy = parse_policy_or_ask(configured_policy);
out.origin = "explicit";
return out;
}
out.policy = QuestionPolicy::Ask;
out.origin = "default";
return out;
}
} // namespace acecode