33 typedef std::basic_string<unsigned char>
ustring;
47 : m_taskHandle(other.m_taskHandle)
48 , m_scheduler(other.m_scheduler)
50 , m_sync((bool)other.m_sync)
56 bool isSync()
const {
return m_sync; }
59 void scheduleTaskPeriodic(
const std::string& clientId,
const std::string& task,
const std::chrono::seconds& sec,
60 const std::chrono::system_clock::time_point& tp = std::chrono::system_clock::now())
73 m_scheduler->
removeTask(clientId, m_taskHandle);
79 std::atomic_bool m_sync{
false};
94 void updateConfiguration(
const rapidjson::Value& cfg);
96 void setDaemon(
IDaemon* daemon)
override;
97 virtual void setSerializer(
ISerializer* serializer)
override;
98 virtual void setMessaging(
IMessaging* messaging)
override;
99 const std::string&
getName()
const override {
103 void update(
const rapidjson::Value& cfg)
override;
104 void start()
override;
105 void stop()
override;
108 void handleMsgFromMessaging(
const ustring& msg);
109 void handleTaskFromScheduler(
const std::string& task);
111 void processFrcFromScheduler(
const std::string& task);
112 void processPulseMeterFromTaskQueue(PrfPulseMeterSchd& pm);
113 void processPulseMeterFromScheduler(
const std::string& task);
115 bool getFrc() {
return m_frcActive; }
116 void setFrc(
bool val);
120 uint16_t m_frcPeriod = 5;
121 uint16_t m_sleepPeriod = 60;
127 std::vector<PrfPulseMeterSchd> m_watchedPm;
129 bool m_frcActive =
false;
131 std::unique_ptr<TaskQueue<PrfPulseMeterSchd*>> m_taskQueue;
133 rapidjson::Value m_dpaRequestJsonPattern;
virtual ~ScheduleDpaTask()
Definition: ClientServicePm.h:54
long TaskHandle
Task handle is task identification.
Definition: IScheduler.h:32
Definition: ProtocolBridgeClientService.h:38
virtual TaskHandle scheduleTaskPeriodic(const std::string &clientId, const std::string &task, const std::chrono::seconds &sec, const std::chrono::system_clock::time_point &tp=std::chrono::system_clock::now())=0
Schedule periodic task.
void setSync(bool val)
Definition: ClientServicePm.h:57
std::basic_string< unsigned char > ustring
Definition: ClientServicePm.h:31
ISerializer interface.
Definition: ISerializer.h:31
static const TaskHandle TASK_HANDLE_INVALID
Invalid task handle.
Definition: IScheduler.h:35
void removeSchedule(const std::string &clientId)
Definition: ProtocolBridgeClientService.h:73
virtual void removeTask(const std::string &clientId, TaskHandle hndl)=0
Remove task for client.
IDaemon interface.
Definition: IDaemon.h:31
const std::string & getName() const override
Get name of the instance.
Definition: ClientServicePm.h:99
IScheduler interface.
Definition: IScheduler.h:28
IService interface.
Definition: IService.h:30
bool isSync() const
Definition: ClientServicePm.h:56
Definition: ClientServicePm.h:87
IMessaging interface.
Definition: IMessaging.h:29
bool isScheduled()
Definition: ClientServicePm.h:66
ScheduleDpaTask(const T &dpt, IScheduler *schd)
Definition: ClientServicePm.h:40
std::basic_string< unsigned char > ustring
Definition: ProtocolBridgeClientService.h:33
ScheduleDpaTask(const ScheduleDpaTask &other)
Definition: ClientServicePm.h:46
ScheduleDpaTask< PrfPulseMeterJson > PrfPulseMeterSchd
Definition: ClientServicePm.h:85
void scheduleTaskPeriodic(const std::string &clientId, const std::string &task, const std::chrono::seconds &sec, const std::chrono::system_clock::time_point &tp=std::chrono::system_clock::now())
Definition: ClientServicePm.h:59
T & getDpa()
Definition: ClientServicePm.h:77