diff options
| author | Per Larsson <[email protected]> | 2021-11-29 12:55:08 +0100 |
|---|---|---|
| committer | Per Larsson <[email protected]> | 2021-11-29 12:55:08 +0100 |
| commit | 9a8e2c8d905bc1e5b62c6f5e246d2574a645b73e (patch) | |
| tree | fb6cd0492812dd8ea99ba3dde27cc2b49dd978dc /zenserver/admin/admin.cpp | |
| parent | Merged main. (diff) | |
| download | zen-9a8e2c8d905bc1e5b62c6f5e246d2574a645b73e.tar.xz zen-9a8e2c8d905bc1e5b62c6f5e246d2574a645b73e.zip | |
Moved GC to background thread and added endpoint to trigger/status GC.
Diffstat (limited to 'zenserver/admin/admin.cpp')
| -rw-r--r-- | zenserver/admin/admin.cpp | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/zenserver/admin/admin.cpp b/zenserver/admin/admin.cpp index 2dd9b110f..0d7a57e36 100644 --- a/zenserver/admin/admin.cpp +++ b/zenserver/admin/admin.cpp @@ -5,11 +5,14 @@ #include "admin.h" #include <zencore/compactbinarybuilder.h> +#include <zencore/string.h> namespace zen { HttpAdminService::HttpAdminService() { + using namespace std::literals; + m_Router.RegisterRoute( "health", [this](HttpRouterRequest& Req) { @@ -19,12 +22,50 @@ HttpAdminService::HttpAdminService() }, HttpVerb::kGet); + m_Router.RegisterRoute( + "gc", + [this](HttpRouterRequest& Req) { + CbObject Response; + if (m_GcHandler.Status) + { + Response = m_GcHandler.Status(); + } + else + { + CbObjectWriter Writer; + Writer << "Status"sv + << "Ok"sv; + Response = Writer.Save(); + } + Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Response); + }, + HttpVerb::kGet); + + m_Router.RegisterRoute( + "gc", + [this](HttpRouterRequest& Req) { + CbObject Response; + if (m_GcHandler.Trigger) + { + Response = m_GcHandler.Trigger(); + } + else + { + CbObjectWriter Writer; + Writer << "Status"sv + << "Ok"sv; + Response = Writer.Save(); + } + Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Response); + }, + HttpVerb::kPost); + // RPC endpoint m_Router.RegisterRoute( "", [this](HttpRouterRequest& Req) { CbObject Payload = Req.ServerRequest().ReadPayloadObject(); - + CbObjectWriter Obj; Obj.AddBool("ok", true); Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Obj.Save()); |