index_mon_page.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include "mon_page.h"
  3. namespace NMonitoring {
  4. struct TIndexMonPage: public IMonPage {
  5. TMutex Mtx;
  6. typedef TVector<TMonPagePtr> TPages;
  7. TPages Pages;
  8. typedef THashMap<TString, TMonPagePtr> TPagesByPath;
  9. TPagesByPath PagesByPath;
  10. TIndexMonPage(const TString& path, const TString& title)
  11. : IMonPage(path, title)
  12. {
  13. }
  14. ~TIndexMonPage() override {
  15. }
  16. void Output(IMonHttpRequest& request) override;
  17. void OutputIndexPage(IMonHttpRequest& request);
  18. virtual void OutputIndex(IOutputStream& out, bool pathEndsWithSlash);
  19. virtual void OutputCommonJsCss(IOutputStream& out);
  20. void OutputHead(IOutputStream& out);
  21. void OutputBody(IMonHttpRequest& out);
  22. void Register(TMonPagePtr page);
  23. TIndexMonPage* RegisterIndexPage(const TString& path, const TString& title);
  24. IMonPage* FindPage(const TString& relativePath);
  25. TIndexMonPage* FindIndexPage(const TString& relativePath);
  26. void SortPages();
  27. void ClearPages();
  28. };
  29. }