Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
QuePushStrategy.h
1#pragma once
2
3#include "CommonDefs.h"
4#include <string>
5
6class Module;
8
10{
11public:
17
18 static boost::shared_ptr<QuePushStrategy> getStrategy(QuePushStrategyType type, std::string& srcModuleId);
19
20 QuePushStrategy(std::string& srcModuleId);
21 virtual ~QuePushStrategy();
22
23 void addQue(std::string dstModuleId, boost::shared_ptr<FrameContainerQueue>& que);
24
25 virtual void push(std::string dstModuleId, frame_container& frames);
26 virtual bool flush() { return true; }
27
28protected:
29 std::map<std::string, boost::shared_ptr<FrameContainerQueue>> mQueByModule;
30 std::string mId;
31};
32
34{
35public:
36 NonBlockingAnyPushStrategy(std::string& srcModuleId);
38
39 virtual void push(std::string dstModuleId, frame_container& frames);
40private:
41 uint64_t mDropCount;
43};
44
46{
47public:
48 NonBlockingAllOrNonePushStrategy(std::string& srcModuleId);
50
51 virtual void push(std::string dstModuleId, frame_container& frames);
52 virtual bool flush();
53
54private:
55 typedef std::map<std::string, frame_container> frames_by_module;
57};
Definition FrameContainerQueue.h:7
Definition Module.h:151
Definition QuePushStrategy.h:46
std::map< std::string, frame_container > frames_by_module
Definition QuePushStrategy.h:55
virtual ~NonBlockingAllOrNonePushStrategy()
Definition QuePushStrategy.cpp:66
virtual bool flush()
Definition QuePushStrategy.cpp:80
NonBlockingAllOrNonePushStrategy(std::string &srcModuleId)
Definition QuePushStrategy.cpp:61
virtual void push(std::string dstModuleId, frame_container &frames)
Definition QuePushStrategy.cpp:71
frames_by_module mFramesByModule
Definition QuePushStrategy.h:56
Definition QuePushStrategy.h:34
NonBlockingAnyPushStrategy(std::string &srcModuleId)
Definition QuePushStrategy.cpp:38
uint64_t mDropCount
Definition QuePushStrategy.h:41
virtual ~NonBlockingAnyPushStrategy()
Definition QuePushStrategy.cpp:43
uint64_t mPrintFrequency
Definition QuePushStrategy.h:42
virtual void push(std::string dstModuleId, frame_container &frames)
Definition QuePushStrategy.cpp:48
Definition QuePushStrategy.h:10
virtual ~QuePushStrategy()
Definition QuePushStrategy.cpp:23
QuePushStrategy(std::string &srcModuleId)
Definition QuePushStrategy.cpp:18
std::map< std::string, boost::shared_ptr< FrameContainerQueue > > mQueByModule
Definition QuePushStrategy.h:29
virtual bool flush()
Definition QuePushStrategy.h:26
void addQue(std::string dstModuleId, boost::shared_ptr< FrameContainerQueue > &que)
Definition QuePushStrategy.cpp:28
QuePushStrategyType
Definition QuePushStrategy.h:12
@ NON_BLOCKING_ALL_OR_NONE
Definition QuePushStrategy.h:15
@ NON_BLOCKING_ANY
Definition QuePushStrategy.h:14
@ BLOCKING
Definition QuePushStrategy.h:13
virtual void push(std::string dstModuleId, frame_container &frames)
Definition QuePushStrategy.cpp:33
static boost::shared_ptr< QuePushStrategy > getStrategy(QuePushStrategyType type, std::string &srcModuleId)
Definition QuePushStrategy.cpp:5
std::string mId
Definition QuePushStrategy.h:30