blob: 50cb5db120a20194540c583a962678240f6aba6f (
plain) (
blame)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include <zencore/stats.h>
#include <zenhttp/httpserver.h>
#include <zenhttp/httpstats.h>
#include <zenhttp/httpstatus.h>
#include <filesystem>
namespace zen {
class BuildStore;
class HttpBuildStoreService final : public zen::HttpService, public IHttpStatusProvider, public IHttpStatsProvider
{
public:
HttpBuildStoreService(HttpStatusService& StatusService, HttpStatsService& StatsService, BuildStore& Store);
virtual ~HttpBuildStoreService();
virtual const char* BaseUri() const override;
virtual void HandleRequest(zen::HttpServerRequest& Request) override;
virtual void HandleStatsRequest(HttpServerRequest& Request) override;
virtual void HandleStatusRequest(HttpServerRequest& Request) override;
private:
struct BuildStoreStats
{
std::atomic_uint64_t BlobReadCount{};
std::atomic_uint64_t BlobHitCount{};
std::atomic_uint64_t BlobWriteCount{};
std::atomic_uint64_t BlobMetaReadCount{};
std::atomic_uint64_t BlobMetaHitCount{};
std::atomic_uint64_t BlobMetaWriteCount{};
std::atomic_uint64_t BlobExistsCount{};
std::atomic_uint64_t BlobExistsBodyHitCount{};
std::atomic_uint64_t BlobExistsMetaHitCount{};
std::atomic_uint64_t RequestCount{};
std::atomic_uint64_t BadRequestCount{};
};
void Initialize();
inline LoggerRef Log() { return m_Log; }
LoggerRef m_Log;
void PutBlobRequest(HttpRouterRequest& Req);
void GetBlobRequest(HttpRouterRequest& Req);
void PutMetadataRequest(HttpRouterRequest& Req);
void GetMetadatasRequest(HttpRouterRequest& Req);
void BlobsExistsRequest(HttpRouterRequest& Req);
HttpRequestRouter m_Router;
HttpStatusService& m_StatusService;
HttpStatsService& m_StatsService;
BuildStore& m_BuildStore;
BuildStoreStats m_BuildStoreStats;
metrics::OperationTiming m_HttpRequests;
};
} // namespace zen
|