Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
AbsControlModule.h
1#pragma once
2#include "APCallback.h"
3#include "Command.h"
4#include "Module.h"
5#include <map>
6
7class PipeLine;
9public:
11};
12
13class AbsControlModule : public Module {
14public:
17 bool init();
18 bool term();
19 bool enrollModule(std::string role, boost::shared_ptr<Module> module);
20 boost::shared_ptr<Module> getModuleofRole(std::string role);
21 std::string printStatus();
22 virtual void handleMp4MissingVideotrack(std::string previousVideoFile, std::string nextVideoFile) {}
23 virtual void handleMMQExport(Command cmd, bool priority = false) {}
24 virtual void handleMMQExportView(uint64_t startTS, uint64_t endTS = 9999999999999, bool playabckDirection = true, bool Mp4ReaderExport = false, bool priority = false) {}
25 virtual void handleSendMMQTSCmd(uint64_t mmqBeginTS, uint64_t mmqEndTS, bool priority = false) {}
26 virtual void handleLastGtkGLRenderTS(uint64_t latestGtkGlRenderTS, bool priority) {}
27 virtual void handleGoLive(bool goLive, bool priority) {}
28 virtual void handleDecoderSpeed(DecoderPlaybackSpeed cmd, bool priority) {}
29 // Note: weak pointers to avoid cyclic dependency and mem leaks
30 std::map<std::string, boost::weak_ptr<Module>> moduleRoles;
31 virtual void handleError(const APErrorObject &error) {}
32 virtual void handleHealthCallback(const APHealthObject& healthObj);
40 boost::function<void(const APHealthObject*, unsigned short)> callbackFunction);
41protected:
42 bool process(frame_container& frames);
43 bool handleCommand(Command::CommandType type, frame_sp& frame);
44 bool handlePropsChange(frame_sp& frame);
45 virtual void sendEOS() {}
46 virtual void sendEOS(frame_sp& frame) {}
47 virtual void sendEOPFrame() {}
48 std::vector<std::string> serializeControlModule();
49 boost::function<void(const APHealthObject*, unsigned short)> healthCallbackExtention;
50private:
51 class Detail;
52 boost::shared_ptr<Detail> mDetail;
53};
Definition APErrorObject.h:4
Definition APHealthObject.h:5
Definition AbsControlModule.h:8
AbsControlModuleProps()
Definition AbsControlModule.h:10
Definition AbsControlModule.cpp:10
Definition AbsControlModule.h:13
bool init()
Definition AbsControlModule.cpp:41
AbsControlModule(AbsControlModuleProps _props)
Definition AbsControlModule.cpp:23
virtual void handleGoLive(bool goLive, bool priority)
Definition AbsControlModule.h:27
boost::function< void(const APHealthObject *, unsigned short)> healthCallbackExtention
Definition AbsControlModule.h:49
virtual void handleSendMMQTSCmd(uint64_t mmqBeginTS, uint64_t mmqEndTS, bool priority=false)
Definition AbsControlModule.h:25
std::vector< std::string > serializeControlModule()
Definition AbsControlModule.cpp:120
bool term()
Definition AbsControlModule.cpp:50
virtual void handleDecoderSpeed(DecoderPlaybackSpeed cmd, bool priority)
Definition AbsControlModule.h:28
boost::shared_ptr< Module > getModuleofRole(std::string role)
Definition AbsControlModule.cpp:90
virtual void handleMMQExportView(uint64_t startTS, uint64_t endTS=9999999999999, bool playabckDirection=true, bool Mp4ReaderExport=false, bool priority=false)
Definition AbsControlModule.h:24
virtual void sendEOS()
Definition AbsControlModule.h:45
virtual void handleError(const APErrorObject &error)
Definition AbsControlModule.h:31
virtual void handleMp4MissingVideotrack(std::string previousVideoFile, std::string nextVideoFile)
Definition AbsControlModule.h:22
virtual void sendEOS(frame_sp &frame)
Definition AbsControlModule.h:46
~AbsControlModule()
Definition AbsControlModule.cpp:29
virtual void sendEOPFrame()
Definition AbsControlModule.h:47
std::string printStatus()
Definition AbsControlModule.cpp:140
virtual void handleHealthCallback(const APHealthObject &healthObj)
Definition AbsControlModule.cpp:110
bool handleCommand(Command::CommandType type, frame_sp &frame)
Definition AbsControlModule.cpp:31
virtual void handleMMQExport(Command cmd, bool priority=false)
Definition AbsControlModule.h:23
std::map< std::string, boost::weak_ptr< Module > > moduleRoles
Definition AbsControlModule.h:30
virtual void handleLastGtkGLRenderTS(uint64_t latestGtkGlRenderTS, bool priority)
Definition AbsControlModule.h:26
bool process(frame_container &frames)
Definition AbsControlModule.cpp:55
bool handlePropsChange(frame_sp &frame)
Definition AbsControlModule.cpp:36
bool enrollModule(std::string role, boost::shared_ptr< Module > module)
Enroll your module to use healthcallback, errorcallback and other control module functions.
Definition AbsControlModule.cpp:67
void registerHealthCallbackExtention(boost::function< void(const APHealthObject *, unsigned short)> callbackFunction)
Register external function to be triggered on every health callBack that control modules recieves fro...
Definition AbsControlModule.cpp:104
boost::shared_ptr< Detail > mDetail
Definition AbsControlModule.h:52
Definition Command.h:7
CommandType
Definition Command.h:9
Definition Command.h:283
Definition Module.h:33
Definition Module.h:151
Definition PipeLine.h:10