diff options
Diffstat (limited to 'src/zenserver/storage/objectstore/objectstore.h')
| -rw-r--r-- | src/zenserver/storage/objectstore/objectstore.h | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/src/zenserver/storage/objectstore/objectstore.h b/src/zenserver/storage/objectstore/objectstore.h index cc47b50c4..8a25e750b 100644 --- a/src/zenserver/storage/objectstore/objectstore.h +++ b/src/zenserver/storage/objectstore/objectstore.h @@ -11,6 +11,7 @@ namespace zen { class HttpRouterRequest; +class HttpStatsService; struct ObjectStoreConfig { @@ -24,31 +25,35 @@ struct ObjectStoreConfig std::vector<BucketConfig> Buckets; }; -class HttpObjectStoreService final : public zen::HttpService, public IHttpStatusProvider +class HttpObjectStoreService final : public HttpService, public IHttpStatusProvider, public IHttpStatsProvider { public: - HttpObjectStoreService(HttpStatusService& StatusService, ObjectStoreConfig Cfg); + HttpObjectStoreService(HttpStatsService& StatsService, HttpStatusService& StatusService, ObjectStoreConfig Cfg); virtual ~HttpObjectStoreService(); virtual const char* BaseUri() const override; - virtual void HandleRequest(zen::HttpServerRequest& Request) override; + virtual void HandleRequest(HttpServerRequest& Request) override; virtual void HandleStatusRequest(HttpServerRequest& Request) override; + virtual void HandleStatsRequest(HttpServerRequest& Request) override; + virtual uint64_t GetActivityCounter() override; private: void Inititalize(); std::filesystem::path GetBucketDirectory(std::string_view BucketName); - void ListBuckets(zen::HttpRouterRequest& Request); - void CreateBucket(zen::HttpRouterRequest& Request); - void ListBucket(zen::HttpRouterRequest& Request, const std::string_view Path); - void DeleteBucket(zen::HttpRouterRequest& Request); - void GetObject(zen::HttpRouterRequest& Request, const std::string_view Path); - void PutObject(zen::HttpRouterRequest& Request); - - HttpStatusService& m_StatusService; - ObjectStoreConfig m_Cfg; - std::mutex BucketsMutex; - HttpRequestRouter m_Router; - std::atomic_uint64_t TotalBytesServed{0}; + void ListBuckets(HttpRouterRequest& Request); + void CreateBucket(HttpRouterRequest& Request); + void ListBucket(HttpRouterRequest& Request, const std::string_view Path); + void DeleteBucket(HttpRouterRequest& Request); + void GetObject(HttpRouterRequest& Request, const std::string_view Path); + void PutObject(HttpRouterRequest& Request); + + HttpStatsService& m_StatsService; + HttpStatusService& m_StatusService; + ObjectStoreConfig m_Cfg; + std::mutex m_BucketsMutex; + HttpRequestRouter m_Router; + std::atomic_uint64_t m_TotalBytesServed{0}; + metrics::OperationTiming m_HttpRequests; }; } // namespace zen |