main.cpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #include <iostream>
  2. #include <sys/stat.h>
  3. #include "httpserver/http-server.h"
  4. #include "utils/utils.h"
  5. #include "processor/processor.h"
  6. using namespace xc::httpserver;
  7. using namespace xc::processor;
  8. ContentGeneratorDefine({
  9. if (request.getMethod() != "GET") { return false; }
  10. struct stat buffer;
  11. string filePath = "html/" + request.getURL();
  12. return stat(filePath.c_str(), &buffer) == 0;
  13. }, {
  14. string filePath = "html" + request.getURL();
  15. return new BinaryResponseData(200, filePath, mimeTypeOfFile(filePath));
  16. })
  17. ContentGeneratorDefine(return request.getURL() == "/test1", {
  18. return new TextResponseData(200, "test1 controller response");
  19. })
  20. ContentGeneratorDefine(return request.getURL() == "/test2", {
  21. return new TextResponseData(200, "test2 controller response");
  22. })
  23. int main() {
  24. std::cout << "Hello, World!" << std::endl;
  25. HTTPServer server(8192);
  26. thread([&server] { server.serverLoop(); }).detach();
  27. RequestProcessWorker worker;
  28. thread([&worker] { worker.workerLoop(); }).detach();
  29. while (true) usleep(1000);
  30. }