AppComponent.hpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef AppComponent_hpp
  2. #define AppComponent_hpp
  3. #include "oatpp/web/server/HttpConnectionHandler.hpp"
  4. #include "oatpp/web/server/HttpRouter.hpp"
  5. #include "oatpp/network/server/SimpleTCPConnectionProvider.hpp"
  6. #include "oatpp/parser/json/mapping/ObjectMapper.hpp"
  7. #include "oatpp/core/macro/component.hpp"
  8. class AppComponent {
  9. public:
  10. /**
  11. * Create ConnectionProvider component which listens on the port
  12. */
  13. OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::network::ServerConnectionProvider>, serverConnectionProvider)([] {
  14. return oatpp::network::server::SimpleTCPConnectionProvider::createShared(8000);
  15. }());
  16. /**
  17. * Create Router component
  18. */
  19. OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::web::server::HttpRouter>, httpRouter)([] {
  20. return oatpp::web::server::HttpRouter::createShared();
  21. }());
  22. /**
  23. * Create ConnectionHandler component which uses Router component to route requests
  24. */
  25. OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::network::server::ConnectionHandler>, serverConnectionHandler)([] {
  26. OATPP_COMPONENT(std::shared_ptr<oatpp::web::server::HttpRouter>, router); // get Router component
  27. return oatpp::web::server::HttpConnectionHandler::createShared(router);
  28. }());
  29. /**
  30. * Create ObjectMapper component to serialize/deserialize DTOs in Contoller's API
  31. */
  32. OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::data::mapping::ObjectMapper>, apiObjectMapper)([] {
  33. return oatpp::parser::json::mapping::ObjectMapper::createShared();
  34. }());
  35. };
  36. #endif /* AppComponent_hpp */