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

Go to the source code of this file.

Classes

class  apps::http::SimpleSocketProtocol
 
class  apps::http::SimpleSocketProtocolFactory
 

Namespaces

namespace  apps
 
namespace  apps::http
 
namespace  tls
 
namespace  legacy
 

Typedefs

using tls::SocketClient = net::in::stream::tls::SocketClient<apps::http::SimpleSocketProtocolFactory>
 
using tls::SocketAddress = SocketClient::SocketAddress
 
using tls::SocketConnection = SocketClient::SocketConnection
 
using legacy::SocketClient = net::in::stream::legacy::SocketClient<apps::http::SimpleSocketProtocolFactory>
 
using legacy::SocketAddress = SocketClient::SocketAddress
 
using legacy::SocketConnection = SocketClient::SocketConnection
 

Functions

static web::http::client::ResponseParserapps::http::getResponseParser (core::socket::stream::SocketContext *socketContext)
 
SocketClient tls::getClient ()
 
SocketClient legacy::getLegacyClient ()
 
int main (int argc, char *argv[])
 

Function Documentation

◆ main()

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

Definition at line 317 of file httplowlevelclient.cpp.

317 {
318 core::SNodeC::init(argc, argv);
319
320 {
321 const legacy::SocketAddress legacyRemoteAddress("localhost", 8080);
322
323 const legacy::SocketClient legacyClient = legacy::getLegacyClient();
324
325 legacyClient.connect(legacyRemoteAddress,
326 [instanceName = legacyClient.getConfig().getInstanceName()](
327 const tls::SocketAddress& socketAddress,
328 const core::socket::State& state) { // example.com:81 simulate connnect timeout
329 switch (state) {
330 case core::socket::State::OK:
331 VLOG(1) << instanceName << ": connected to '" << socketAddress.toString() << "'";
332 break;
333 case core::socket::State::DISABLED:
334 VLOG(1) << instanceName << ": disabled";
335 break;
336 case core::socket::State::ERROR:
337 LOG(ERROR) << instanceName << ": " << socketAddress.toString() << ": " << state.what();
338 break;
339 case core::socket::State::FATAL:
340 LOG(FATAL) << instanceName << ": " << socketAddress.toString() << ": " << state.what();
341 break;
342 }
343 });
344
345 const tls::SocketAddress tlsRemoteAddress = tls::SocketAddress("localhost", 8088);
346
347 const tls::SocketClient tlsClient = tls::getClient();
348
349 tlsClient.connect(tlsRemoteAddress,
350 [instanceName = tlsClient.getConfig().getInstanceName()](
351 const tls::SocketAddress& socketAddress,
352 const core::socket::State& state) { // example.com:81 simulate connnect timeout
353 switch (state) {
354 case core::socket::State::OK:
355 VLOG(1) << instanceName << ": connected to '" << socketAddress.toString() << "'";
356 break;
357 case core::socket::State::DISABLED:
358 VLOG(1) << instanceName << ": disabled";
359 break;
360 case core::socket::State::ERROR:
361 LOG(ERROR) << instanceName << ": " << socketAddress.toString() << ": " << state.what();
362 break;
363 case core::socket::State::FATAL:
364 LOG(FATAL) << instanceName << ": " << socketAddress.toString() << ": " << state.what();
365 break;
366 }
367 });
368 }
369
370 return core::SNodeC::start();
371}
static void init(int argc, char *argv[])
Definition SNodeC.cpp:32
static int start(const utils::Timeval &timeOut={LONG_MAX, 0})
Definition SNodeC.cpp:38
Config & getConfig() const
Definition Socket.hpp:38
void connect(const std::string &ipOrHostname, uint16_t port, const std::function< void(const SocketAddress &, core::socket::State)> &onStatus) const
SocketClient::SocketAddress SocketAddress
SocketClient getLegacyClient()
SocketClient getClient()
SocketClient::SocketAddress SocketAddress