-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathHTTPTransform.cpp
41 lines (28 loc) · 1.16 KB
/
HTTPTransform.cpp
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
38
39
40
41
#include "HTTPTransform.hpp"
#include <vector>
void HTTPTransform::addRequestTransform(std::function <void (net::HTTP &request)> transform) {
std::lock_guard <std::shared_timed_mutex> lock(requestMutex);
requestTransformations.push_back(transform);
}
void HTTPTransform::addResponseTransform(std::function <void (net::HTTP &response)> transform) {
std::lock_guard <std::shared_timed_mutex> lock(responseMutex);
responseTransformations.push_back(transform);
}
void HTTPTransform::clearRequestTransform() {
std::lock_guard <std::shared_timed_mutex> lock(requestMutex);
requestTransformations.clear();
}
void HTTPTransform::clearResponseTransform() {
std::lock_guard <std::shared_timed_mutex> lock(responseMutex);
responseTransformations.clear();
}
void HTTPTransform::transformRequest(net::HTTP &request) {
std::shared_lock <std::shared_timed_mutex> lock(requestMutex);
for (auto &fun : requestTransformations)
fun(request);
}
void HTTPTransform::transformResponse(net::HTTP &response) {
std::shared_lock <std::shared_timed_mutex> lock(responseMutex);
for (auto &fun : responseTransformations)
fun(response);
}