| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #ifndef AppComponent_hpp
- #define AppComponent_hpp
- #include "oatpp/web/server/HttpConnectionHandler.hpp"
- #include "oatpp/web/server/HttpRouter.hpp"
- #include "oatpp/network/server/SimpleTCPConnectionProvider.hpp"
- #include "oatpp/parser/json/mapping/ObjectMapper.hpp"
- #include "oatpp/core/macro/component.hpp"
- class AppComponent {
- public:
- /**
- * Create ConnectionProvider component which listens on the port
- */
- OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::network::ServerConnectionProvider>, serverConnectionProvider)([] {
- return oatpp::network::server::SimpleTCPConnectionProvider::createShared(8000);
- }());
- /**
- * Create Router component
- */
- OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::web::server::HttpRouter>, httpRouter)([] {
- return oatpp::web::server::HttpRouter::createShared();
- }());
- /**
- * Create ConnectionHandler component which uses Router component to route requests
- */
- OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::network::server::ConnectionHandler>, serverConnectionHandler)([] {
- OATPP_COMPONENT(std::shared_ptr<oatpp::web::server::HttpRouter>, router); // get Router component
- return oatpp::web::server::HttpConnectionHandler::createShared(router);
- }());
- /**
- * Create ObjectMapper component to serialize/deserialize DTOs in Contoller's API
- */
- OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::data::mapping::ObjectMapper>, apiObjectMapper)([] {
- return oatpp::parser::json::mapping::ObjectMapper::createShared();
- }());
- };
- #endif /* AppComponent_hpp */
|