Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
IFactoryMethod.h
[詳解]
1#pragma once
2
3#include "DesignPattern.hpp"
4#include "TString.h"
5
6namespace alt
7{
8 namespace FactoryMethod
9 {
11 {
12 public:
13 IData (int seqNo);
14 virtual ~IData ();
15
16 int GetSeqNo () { return _seqNo; };
17 SYSTEMTIME& GetCreateTime () { return _createDateTime; };
18 void SetCreateTime (SYSTEMTIME& systemTime) { _createDateTime = systemTime; };
19
20 protected:
21 IData ();
22
23 private:
24 int _seqNo;
25 SYSTEMTIME _createDateTime;
26 };
27
29 {
30 public:
31 IMessage ();
32 virtual ~IMessage ();
33
34 int GetTo () { return _to; };
35 int GetFrom () { return _from; };
36 int GetCommand () { return _command; };
37 void SetParam (int to, int from, int command);
38
39 private:
40 int _to;
41 int _from;
43 };
44
46 {
47 public:
48 IConfig ();
49 virtual ~IConfig ();
50
51 virtual bool Load (LPCTSTR lpctszConfigPath) = 0;
52 virtual bool Reload () = 0;
53 };
54
55 class IProduct : public skeleton::ISubscriber<IMessage*>, public skeleton::IObserver<IMessage*>
56 {
57 public:
58 IProduct (int id, TString productName);
59 virtual ~IProduct ();
60
61 virtual bool Init (IConfig* config) = 0;
62 virtual bool Start () = 0;
63 virtual IData* Process (IData* data) = 0;
64 virtual bool Stop () = 0;
65 virtual bool Exit () = 0;
66
67 virtual void Update (IMessage* message) = 0;
68
69 virtual int GetID () { return _id; };
70 virtual TString GetName () { return _productName; };
71
72 protected:
73 IProduct ();
74
75 int _id;
77 };
78
79 class IElement : public skeleton::ISubscriber<IData*>, public skeleton::IObserver<IData*>
80 {
81 public:
82 IElement (TString elementName);
83 virtual ~IElement ();
84
85 virtual void SetProduct (IProduct* product) { _product = product; };
86 virtual void Setup ();
87 virtual TString& GetName () { return _elementName; };
88 virtual void Update (IData* data) = 0;
89
90 protected:
91 IElement ();
92
94 IProduct* _product = nullptr;
95 };
96
98 {
99 public:
100 ICreator ();
101 virtual ~ICreator ();
102
103 virtual IProduct* CreateProduct (int id, TString target, TString prefix) = 0;
104 virtual IElement* CreateElement (TString target, TString fullName) = 0;
105 };
106
107 class IProductManager : public skeleton::ISubscriber<IMessage*>, public skeleton::IObserver<IMessage*>
108 {
109 public:
111 virtual ~IProductManager ();
112
113 virtual bool Init (IConfig* config) = 0;
114 virtual bool Start () = 0;
115 virtual bool Stop () = 0;
116 virtual bool Exit () = 0;
117
118 virtual void Update (IMessage* message) = 0;
119
120 };
121
123 {
124 public:
126 virtual ~IFactoryMethod ();
127
128 virtual IProductManager* Buildup () = 0;
129 };
130 }
131}
#define DLL_DECLSPEC
Definition: framework.h:17
種々のデザインパターンの実装クラス
文字列に関するWindowsAPIを集約したクラス
virtual bool Load(LPCTSTR lpctszConfigPath)=0
virtual IElement * CreateElement(TString target, TString fullName)=0
virtual IProduct * CreateProduct(int id, TString target, TString prefix)=0
void SetCreateTime(SYSTEMTIME &systemTime)
SYSTEMTIME & GetCreateTime()
virtual void SetProduct(IProduct *product)
virtual void Update(IData *data)=0
virtual TString & GetName()
virtual IProductManager * Buildup()=0
virtual void Update(IMessage *message)=0
virtual IData * Process(IData *data)=0
virtual bool Init(IConfig *config)=0
virtual bool Init(IConfig *config)=0
virtual void Update(IMessage *message)=0
文字列に関するWindowsAPIを集約したクラス
Definition: TString.h:17
IObserverインターフェースクラス
ISubscriberインターフェースクラス
Definition: DBLibrary.h:12