4#include "Stroika/Frameworks/StroikaPreComp.h"
8#include "Stroika/Foundation/Characters/String2Int.h"
10#include "Stroika/Foundation/Containers/Sequence.h"
12#include "Stroika/Foundation/Execution/CommandLine.h"
13#include "Stroika/Foundation/Execution/Module.h"
14#include "Stroika/Foundation/Execution/SignalHandlers.h"
15#include "Stroika/Foundation/Execution/TimeOutException.h"
16#include "Stroika/Foundation/Execution/WaitableEvent.h"
21#include "AppVersion.h"
31using namespace StroikaSample::WebServices;
33int main (
int argc,
const char* argv[])
38#if qStroika_Foundation_Common_Platform_POSIX
41 uint16_t portNumber = 8080;
48 cmdLine.Validate ({kPortO_, kQuitAfterO_});
50 if (
auto o = cmdLine.GetArgument (kPortO_)) {
51 portNumber = Characters::String2Int<uint16_t> (*o);
53 if (
auto o = cmdLine.GetArgument (kQuitAfterO_)) {
54 quitAfter =
Time::DurationSeconds{Characters::FloatConversion::ToFloat<Time::DurationSeconds::rep> (*o)};
57 WebServer myWebServer{portNumber, make_shared<WSImpl> ()};
61 cerr <<
"Timed out - so - exiting..." << endl;
65 cerr <<
"Error encountered: " << Characters::ToString (current_exception ()).AsNarrowSDKString () <<
" - terminating..." << endl;
chrono::duration< double > DurationSeconds
chrono::duration<double> - a time span (length of time) measured in seconds, but high precision.
String is like std::u32string, except it is much easier to use, often much more space efficient,...
A generalization of a vector: a container whose elements are keyed by the natural numbers.
nonvirtual void SetSignalHandlers(SignalID signal)
static SignalHandlerRegistry & Get()
static const SignalHandler kIGNORED
nonvirtual void Wait(Time::DurationSeconds timeout=Time::kInfinity)
Create a format-string (see std::wformat_string or Stroika FormatString, or python 'f' strings.