Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032
00033 #pragma once
00034
00035
00036 #include "../api_core.h"
00037 #include "../System/sharedptr.h"
00038 #include "../Signals/signal_v1.h"
00039
00040 class CL_Event;
00041 class CL_Service_Impl;
00042
00046 class CL_API_CORE CL_Service
00047 {
00050
00051 public:
00053 CL_Service(const CL_String &service_name);
00054
00055 ~CL_Service();
00056
00057
00061
00062 public:
00064 const CL_String &get_service_name() const;
00065
00066
00070
00071 public:
00073 int main(int argc, char **argv);
00074
00075 protected:
00077 virtual void service_start(std::vector<CL_String> &args) = 0;
00078
00080 virtual void service_stop() = 0;
00081
00083 virtual void service_reload() = 0;
00084
00085
00089
00090 private:
00091 inline CL_Service(const CL_Service ©) { }
00092 inline CL_Service &operator =(const CL_Service &) { return *this; }
00093
00094 CL_SharedPtr<CL_Service_Impl> impl;
00095
00096 friend class CL_Service_Impl;
00098 };
00099
00100