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 339 of file httplowlevelclient.cpp.

339 {
340 core::SNodeC::init(argc, argv);
341
342 {
343 const legacy::SocketAddress legacyRemoteAddress("localhost", 8080);
344
345 const legacy::SocketClient legacyClient = legacy::getLegacyClient();
346
347 legacyClient.connect(legacyRemoteAddress,
348 [instanceName = legacyClient.getConfig().getInstanceName()](
349 const tls::SocketAddress& socketAddress,
350 const core::socket::State& state) { // example.com:81 simulate connnect timeout
351 switch (state) {
352 case core::socket::State::OK:
353 VLOG(1) << instanceName << ": connected to '" << socketAddress.toString() << "'";
354 break;
355 case core::socket::State::DISABLED:
356 VLOG(1) << instanceName << ": disabled";
357 break;
358 case core::socket::State::ERROR:
359 LOG(ERROR) << instanceName << ": " << socketAddress.toString() << ": " << state.what();
360 break;
361 case core::socket::State::FATAL:
362 LOG(FATAL) << instanceName << ": " << socketAddress.toString() << ": " << state.what();
363 break;
364 }
365 });
366
367 const tls::SocketAddress tlsRemoteAddress = tls::SocketAddress("localhost", 8088);
368
369 const tls::SocketClient tlsClient = tls::getClient();
370
371 tlsClient.connect(tlsRemoteAddress,
372 [instanceName = tlsClient.getConfig().getInstanceName()](
373 const tls::SocketAddress& socketAddress,
374 const core::socket::State& state) { // example.com:81 simulate connnect timeout
375 switch (state) {
376 case core::socket::State::OK:
377 VLOG(1) << instanceName << ": connected to '" << socketAddress.toString() << "'";
378 break;
379 case core::socket::State::DISABLED:
380 VLOG(1) << instanceName << ": disabled";
381 break;
382 case core::socket::State::ERROR:
383 LOG(ERROR) << instanceName << ": " << socketAddress.toString() << ": " << state.what();
384 break;
385 case core::socket::State::FATAL:
386 LOG(FATAL) << instanceName << ": " << socketAddress.toString() << ": " << state.what();
387 break;
388 }
389 });
390 }
391
392 return core::SNodeC::start();
393}
static void init(int argc, char *argv[])
Definition SNodeC.cpp:54
static int start(const utils::Timeval &timeOut={LONG_MAX, 0})
Definition SNodeC.cpp:60
Config & getConfig() const
Definition Socket.hpp:60
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::SocketAddress SocketAddress
SocketClient getClient()

References core::socket::stream::SocketClient< SocketConnectorT, SocketContextFactoryT, Args >::connect(), core::socket::State::DISABLED, core::socket::State::ERROR, core::socket::State::FATAL, tls::getClient(), core::socket::Socket< ConfigT >::getConfig(), net::config::ConfigInstance::getInstanceName(), legacy::getLegacyClient(), core::SNodeC::init(), core::socket::State::OK, net::in::SocketAddress::SocketAddress(), core::SNodeC::start(), net::in::SocketAddress::toString(), and core::socket::State::what().

Here is the call graph for this function: