SNode.C
Loading...
Searching...
No Matches
jsonserver.cpp File Reference
Include dependency graph for jsonserver.cpp:

Go to the source code of this file.

Functions

int main (int argc, char *argv[])

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

Definition at line 55 of file jsonserver.cpp.

55 {
57
58 WebApp::init(argc, argv);
59
60 using SocketAddress = WebApp::SocketAddress;
61
62 const WebApp legacyApp("legacy-jsonserver");
63
65
66 legacyApp.listen(
67 8080,
68 [instanceName = legacyApp.getConfig().getInstanceName()](const SocketAddress& socketAddress, const core::socket::State& state) {
69 switch (state) {
70 case core::socket::State::OK:
71 VLOG(1) << instanceName << ": listening on '" << socketAddress.toString() << "'";
72 break;
73 case core::socket::State::DISABLED:
74 VLOG(1) << instanceName << ": disabled";
75 break;
76 case core::socket::State::ERROR:
77 LOG(ERROR) << instanceName << ": " << socketAddress.toString() << ": " << state.what();
78 break;
79 case core::socket::State::FATAL:
80 LOG(FATAL) << instanceName << ": " << socketAddress.toString() << ": " << state.what();
81 break;
82 }
83 });
84
85 legacyApp.post("/index.html", [] APPLICATION(req, res) {
86 std::string jsonString;
87
88 req->getAttribute<nlohmann::json>(
89 [&jsonString](nlohmann::json& json) {
90 jsonString = json.dump(4);
91 VLOG(1) << "Application received body: " << jsonString;
92 },
93 [](const std::string& key) {
94 VLOG(1) << key << " attribute not found";
95 });
96
97 res->send(jsonString);
98 });
99
100 legacyApp.post([] APPLICATION(req, res) {
101 res->send("Wrong Url");
102 });
103
104 return WebApp::start();
105}
#define VLOG(level)
Definition Logger.h:164
#define APPLICATION(req, res)
Definition Router.h:68
express::legacy::NET::WebApp WebApp
Definition servers.h:76
WebAppT< web::http::legacy::in::Server > WebApp
Definition WebApp.h:56
SocketClient::SocketAddress SocketAddress

References core::socket::State::DISABLED, core::socket::State::ERROR, logger::ERROR, core::socket::State::FATAL, logger::FATAL, utils::MultibleAttributeInjector::getAttribute(), core::socket::Socket< ConfigT >::getConfig(), net::config::ConfigInstance::getInstanceName(), express::WebApp::init(), net::in::stream::SocketServer< SocketAcceptorT, ConfigSocketServerT, SocketContextFactoryT, Args >::listen(), logger::LogMessage::LogMessage(), core::socket::State::OK, express::Response::send(), express::WebApp::start(), net::in::SocketAddress::toString(), express::WebAppT< ServerT >::WebAppT(), and core::socket::State::what().

Here is the call graph for this function: