Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
PipelineFactoryMethod.h
[詳解]
1#pragma once
2
3#include "IFactoryMethod.h"
5#include "WatchDogTimer.h"
6#include "CriticalSection.h"
7#include "TString.h"
8#include "Event.h"
9#include "Thread.h"
10#include "Log.h"
11
12#define SECTION_PIPELINE_FACTORY _T("PipelineFactory")
13#define KEYWORD_INTERVAL _T("Interval")
14#define KEYWORD_DUMMY_PROCESS_TIME _T("DummyProcessTime")
15
16namespace alt
17{
18 namespace FactoryMethod
19 {
20 // -- ByteData ------------------------------------------------------
21
23 {
24 public:
25 ByteData (int seqNo, LPBYTE lpbyChunkData, size_t chunkSize);
26 virtual ~ByteData ();
27
28 LPBYTE GetChunk () { return _lpbyChunkData; };
29 size_t GetChunkSize () { return _chunkSize; };
30
31 protected:
32 ByteData ();
33
34 private:
36 size_t _chunkSize;
37 };
38
39 // -- Config ---------------------------------------------------------
40
42 {
43 public:
44 Config ();
45 virtual ~Config ();
46
47 virtual bool Load (LPCTSTR lpctszConfigPath);
48 virtual bool Reload ();
49
50 int GetInterval () { return _interval; };
51 int GetDummyProcessTime () { return _dummyProcessTime; };
52
53 private:
57 };
58
59 // -- ClockElement ---------------------------------------------------
60
62 {
63 public:
64 ClockElement (TString elementName);
65 virtual ~ClockElement ();
66
67 virtual void Update (IData* data) {};
68 virtual void Init ();
69 virtual void Start (DWORD dwInterval);
70 virtual void Stop ();
71 virtual DWORD Invoke (LPVOID lpvParam);
72
73 protected:
74 ClockElement ();
75
76 private:
77 int _seqNo;
78 bool _stop;
83 };
84
85 // -- SyncElement ---------------------------------------------------
86
87 class SyncElement : public IElement
88 {
89 public:
90 SyncElement (TString elementName);
91 virtual ~SyncElement ();
92
93 virtual void Update (IData* data);
94
95 protected:
96 SyncElement ();
97 };
98
99 // -- QueueElement --------------------------------------------------
100
102 {
103 public:
104 QueueElement (TString elementName);
105 virtual ~QueueElement ();
106
107 virtual void Setup ();
108 virtual void Update (IData* data);
109 virtual DWORD Invoke (LPVOID lpvParam);
110
111 protected:
112 std::queue<IData*> _queue;
116 };
117
118 // -- TerminateElement ----------------------------------------------
119
121 {
122 public:
123 TerminateElement (TString elementName);
124 virtual ~TerminateElement ();
125
126 virtual void Update (IData* data);
127
128 protected:
131 };
132
133 // -- DummyProduct --------------------------------------------------
134
135 class DummyProduct : public IProduct
136 {
137 public:
138 DummyProduct (int id, TString productName);
139
140 virtual bool Init (IConfig* config);
141 virtual bool Start ();
142 virtual IData* Process (IData* data);
143 virtual bool Stop ();
144 virtual bool Exit ();
145
146 virtual void Update (IMessage* message);
147
148 protected:
149 DummyProduct ();
151 };
152
153 // -- Creator -------------------------------------------------------
154
155 class Creator : public ICreator
156 {
157 public:
158 Creator ();
159 virtual ~Creator ();
160
161 virtual IProduct* CreateProduct (int id, TString target, TString fullName);
162 virtual IElement* CreateElement (TString target, TString fullName);
163 };
164
165 // -- ProductManager ------------------------------------------------
166
168 {
169 public:
171 virtual ~ProductManager ();
172
173 virtual bool Init (IConfig* config);
174 virtual bool Start ();
175 virtual bool Stop ();
176 virtual bool Exit ();
177
178 virtual void Update (IMessage* message);
179
180 virtual void AddProduct (TString name, IProduct* product);
181 virtual IProduct* GetProduct (TString name);
182 virtual void AddElement (TString name, IElement* element);
183 virtual IElement* GetElement (TString name);
184
185 protected:
186
187 private:
188 std::map<TString, IProduct*> _products;
189 std::map<TString, IElement*> _elements;
191 };
192
193 // -- PipelineFactoryMethod -----------------------------------------
194
196 {
197 public:
200
201 virtual IProductManager* Buildup ();
202 };
203 }
204}
void Init()
ストラテジーの初期化を行います。
CriticalSectionに関するWindowsAPIを集約したクラス
#define DLL_DECLSPEC
Definition: framework.h:17
イベントに関するWindowsAPIを集約したクラス
コールバック機能を集約したクラス
Fileをベースとしたログに関する機能を集約したクラス
文字列に関するWindowsAPIを集約したクラス
スレッドに関するWindowsAPIを集約したクラス
タイマーに関するWindowsAPIを集約したクラス
CriticalSectionに関するWindowsAPIを集約したクラス
イベントに関するWindowsAPIを集約したクラス
Definition: Event.h:16
virtual void Start(DWORD dwInterval)
virtual DWORD Invoke(LPVOID lpvParam)
コールバック関数プレースホルダ
virtual void Update(IData *data)
virtual IProduct * CreateProduct(int id, TString target, TString fullName)
virtual IElement * CreateElement(TString target, TString fullName)
virtual void Update(IMessage *message)
std::map< TString, IElement * > _elements
virtual void Update(IMessage *message)
virtual void AddProduct(TString name, IProduct *product)
virtual IElement * GetElement(TString name)
virtual IProduct * GetProduct(TString name)
std::map< TString, IProduct * > _products
virtual void AddElement(TString name, IElement *element)
virtual DWORD Invoke(LPVOID lpvParam)
コールバック関数プレースホルダ
Fileをベースとしたログに関する機能を集約したクラス
Definition: Log.h:37
プロセスに関するWindowsAPIを集約したクラス
Definition: Process.h:41
文字列に関するWindowsAPIを集約したクラス
Definition: TString.h:17
スレッドに関するWindowsAPIを集約したクラス
Definition: Thread.h:43
タイマーに関するWindowsAPIを集約したクラス
Definition: WatchDogTimer.h:18
Threadクラスのスレッド実行関数を設定します。
Definition: DBLibrary.h:12