CFx SDK Documentation  2023 SP0
RxProtocolReactor.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2017, Open Design Alliance (the "Alliance").
3 // All rights reserved.
4 //
5 // This software and its documentation and related materials are owned by
6 // the Alliance. The software may only be incorporated into application
7 // programs owned by members of the Alliance, subject to a signed
8 // Membership Agreement and Supplemental Software License Agreement with the
9 // Alliance. The structure and organization of this software are the valuable
10 // trade secrets of the Alliance and its suppliers. The software is also
11 // protected by copyright law and international treaty provisions. Application
12 // programs incorporating this software must include the following statement
13 // with their copyright notices:
14 //
15 // This application incorporates Teigha(R) software pursuant to a license
16 // agreement with Open Design Alliance.
17 // Teigha(R) Copyright (C) 2002-2017 by Open Design Alliance.
18 // All rights reserved.
19 //
20 // By use of this software, its documentation or related materials, you
21 // acknowledge and accept the above terms.
23 
24 #ifndef _RxProtocolReactor_h_Included_
25 #define _RxProtocolReactor_h_Included_
26 
27 #include "RxObject.h"
28 #include "RxDictionary.h"
29 
36 
37 
48 {
49 public:
51 };
52 
53 
64 {
65 public:
67 
71  virtual OdRxClass* reactorClass () const = 0;
72 
73 
80  virtual void start() = 0;
81 
88  virtual bool next () = 0;
89 
93  virtual bool done () const = 0;
94 
98  virtual OdRxProtocolReactor* object () const = 0;
99 };
100 
105 
106 
113 {
114 public:
116 
120  virtual OdRxClass* reactorClass() const = 0;
121 
127  virtual bool addReactor(OdRxProtocolReactor* pReactor) = 0;
128 
134  virtual void removeReactor(OdRxProtocolReactor* pReactor) = 0;
135 
136 
144 };
145 
150 
151 
161 {
162 public:
164 
171  virtual void start() = 0;
172 
179  virtual bool next () = 0;
180 
184  virtual bool done () const = 0;
185 
189  virtual OdRxProtocolReactorList* object () const = 0;
190 };
191 
196 
197 
204 {
205 public:
207 
208 
217  OdRxClass* pReactorClass) = 0;
218 
219 
227 };
228 
233 
234 
243 {
244 public:
246 
256  OdRxClass* pRxClass) const = 0;
257 };
258 
262 #define odrxProtocolReactors \
263  OdRxProtocolReactorManagerFactory::cast(odrxServiceDictionary()-> \
264  at(ODRX_PROTOCOL_REACTOR_MANAGER))
265 
270 #define ODRX_PROTOCOL_REACTOR_MANAGER_AT(odrxClass) \
271  odrxProtocolReactors->createReactorManager(odrxClass)
272 
278 #define ODRX_PROTOCOL_REACTOR_LIST_AT(odrxClass, reactorClass) \
279  ODRX_PROTOCOL_REACTOR_MANAGER_AT(odrxClass)->createReactorList(reactorClass)
280 
281 #endif // _RxProtocolReactor_h_Included_
#define FIRSTDLL_EXPORT
Definition: RootExport.h:39
OdSmartPtr< OdRxProtocolReactorListIterator > OdRxProtocolReactorListIteratorPtr
OdSmartPtr< OdRxProtocolReactorList > OdRxProtocolReactorListPtr
OdSmartPtr< OdRxProtocolReactorManager > OdRxProtocolReactorManagerPtr
OdSmartPtr< OdRxProtocolReactorIterator > OdRxProtocolReactorIteratorPtr
ODRX_DECLARE_MEMBERS(OdRxProtocolReactor)
virtual bool done() const =0
ODRX_DECLARE_MEMBERS(OdRxProtocolReactorIterator)
virtual OdRxClass * reactorClass() const =0
virtual OdRxProtocolReactor * object() const =0
virtual OdRxClass * reactorClass() const =0
virtual void removeReactor(OdRxProtocolReactor *pReactor)=0
ODRX_DECLARE_MEMBERS(OdRxProtocolReactorList)
virtual bool addReactor(OdRxProtocolReactor *pReactor)=0
virtual OdRxProtocolReactorIteratorPtr newIterator() const =0
virtual OdRxProtocolReactorList * object() const =0
ODRX_DECLARE_MEMBERS(OdRxProtocolReactorListIterator)
virtual bool done() const =0
virtual OdRxProtocolReactorManager * createReactorManager(OdRxClass *pRxClass) const =0
ODRX_DECLARE_MEMBERS(OdRxProtocolReactorManagerFactory)
virtual OdRxProtocolReactorListIteratorPtr newIterator() const =0
ODRX_DECLARE_MEMBERS(OdRxProtocolReactorManager)
virtual OdRxProtocolReactorList * createReactorList(OdRxClass *pReactorClass)=0