12 inline const Main::IServiceIntegrationRep& Main::GetServiceRep_ ()
const
17 inline Main::IServiceIntegrationRep& Main::GetServiceRep_ ()
22 inline const Main::IApplicationRep& Main::GetAppRep_ ()
const
25 return *GetServiceRep_ ()._GetAttachedAppRep ();
27 inline Main::IApplicationRep& Main::GetAppRep_ ()
30 return *GetServiceRep_ ()._GetAttachedAppRep ();
34 return GetServiceRep_ ()._GetSupportedFeatures ();
36 inline void Main::Install ()
43 inline void Main::UnInstall ()
45 Debug::TraceContextBumper ctx{
"Stroika::Frameworks::Service::Main::UnInstall"};
46 static constexpr Execution::Activity kUnInstallingService_{
"uninstalling service"sv};
47 Execution::DeclareActivity activity{&kUnInstallingService_};
50 inline void Main::Start (Time::DurationSeconds timeout)
52 using namespace Characters;
53 Debug::TraceContextBumper ctx{
"Stroika::Frameworks::Service::Main::Start",
"timeout = {}"_f, timeout.count ()};
54 static constexpr Execution::Activity kStartingService_{
"staring service"sv};
55 Execution::DeclareActivity activity{&kStartingService_};
56 GetServiceRep_ ()._Start (timeout);
58 inline void Main::Stop (Time::DurationSeconds timeout)
60 using namespace Characters;
61 Debug::TraceContextBumper ctx{
"Stroika::Frameworks::Service::Main::Stop",
"timeout = {}"_f, timeout.count ()};
62 static constexpr Execution::Activity kStoppingService_{
"stopping service"sv};
63 Execution::DeclareActivity activity{&kStoppingService_};
64 GetServiceRep_ ()._Stop (timeout);
68 using namespace Characters;
72 GetServiceRep_ ()._ForcedStop (timeout);
76 return GetServiceRep_ ()._GetServicePID ();
80 return GetServiceRep_ ()._GetState ();
#define RequireNotNull(p)
chrono::duration< double > DurationSeconds
chrono::duration<double> - a time span (length of time) measured in seconds, but high precision.
Set<T> is a container of T, where once an item is added, additionally adds () do nothing.
virtual void _Install()=0
virtual void _UnInstall()=0
nonvirtual Containers::Set< ServiceIntegrationFeatures > GetServiceIntegrationFeatures() const
nonvirtual pid_t GetServicePID() const
nonvirtual void ForcedStop(Time::DurationSeconds timeout)