MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
assistantSignalRouter.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2012 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #ifndef assistantSignalRouter_H_
7 #define assistantSignalRouter_H_
8 
12 
13 #include "rtiMsConfig.h"
14 #include "assistantSignalIds.h"
15 #include <vector>
16 #include <map>
17 #include <set>
18 
19 class QObject;
20 class DtSignalMappings;
21 class DtQueryMappings;
22 
30 {
31 public:
32 
35 
38 
41  void connectSignals();
42 
44  void registerSignal( DtAssistantSignalId sigId, QObject* obj,
45  const char* sig);
46 
49  void registerSlot( DtAssistantSignalId sigId, QObject* obj,
50  const char* slot);
51 
55  void registerQuery( DtAssistantQueryId queryId, QObject* obj,
56  const char* sig);
57 
62  bool registerQueryResponder( DtAssistantQueryId queryId, QObject* obj,
63  const char* slot);
64 
66  void printMappings();
67 
68 private:
69 
72 
75 
76 protected:
77 
79  std::vector<DtSignalMappings> mySignalMappings;
80 
82  std::vector<DtQueryMappings> myQueryMappings;
83 
84  typedef std::map<DtAssistantSignalId, const char*> DtObjectSignalMap;
85  typedef std::map<DtAssistantQueryId, const char*> DtObjectQueryMap;
86  std::set<QObject*> myMappedObjects;
87  std::map<QObject*, DtObjectSignalMap> myObjectSignalMappings;
88  std::map<QObject*, DtObjectSignalMap> myObjectSlotMappings;
89  std::map<QObject*, DtObjectQueryMap> myObjectQueryMappings;
90 };
91 
92 
96 {
97 public:
98 
100  DtSignalInfo(QObject* o, const char* s) :
101  obj(o), sig(s) {}
102 
105  obj(0), sig(0) {}
106 
109 
110  QObject* object() { return obj; }
111  const QObject* object() const { return obj; }
112 
113  const char* signal() const { return sig; }
114  const char* slot() const { return sig; }
115 
116  bool isValid() const { return (obj != 0 && sig != 0); }
117 
118 protected:
120  const char* sig;
121 };
122 
127 
131 {
132 public:
133 
135  DtSignalMappings() { mySignals.clear(); mySlots.clear(); };
136 
139 
141  void addSignal(QObject* obj, const char* sig)
142  {
143  mySignals.push_back(DtSignalInfo(obj, sig));
144  }
145 
147  void addSlot(QObject* obj, const char* slt)
148  {
149  mySlots.push_back(DtSlotInfo(obj, slt));
150  }
151 
154  bool connectSignals();
155 
156 protected:
157 
159  void printOrphans();
160 
161 protected:
162 
163  std::vector<DtSignalInfo> mySignals;
164  std::vector<DtSlotInfo> mySlots;
165 };
166 
170 {
171 public:
172 
175 
178 
180  void addQuery(QObject* obj, const char* sig)
181  {
182  mySignals.push_back(DtSignalInfo(obj, sig));
183  }
184 
186  bool setResponder(QObject* obj, const char* slt)
187  {
188  if(mySlot.isValid())
189  {
190  return false;
191  }
192  mySlot = DtSlotInfo(obj, slt);
193  return true;
194  }
195 
198  bool connectSignals();
199 
200 protected:
201 
203  void printOrphans();
204 
205 protected:
206 
207  std::vector<DtSignalInfo> mySignals;
209 };
210 
211 #endif //assistantSignalRouter_H_
212 
std::map< QObject *, DtObjectSignalMap > myObjectSlotMappings
Definition: assistantSignalRouter.h:88
DtSignalInfo()
Default constructor.
Definition: assistantSignalRouter.h:104
void printOrphans()
When there are no signals and/or no slots, print the orphans.
bool connectSignals()
Connects all of the query signals to the responder slot.
DtSignalInfo(QObject *o, const char *s)
Constructor.
Definition: assistantSignalRouter.h:100
void addSignal(QObject *obj, const char *sig)
Add a new signal.
Definition: assistantSignalRouter.h:141
const char * sig
Definition: assistantSignalRouter.h:120
std::vector< DtSignalMappings > mySignalMappings
Signal/slot mappings for each of the signal IDs.
Definition: assistantSignalRouter.h:79
std::map< QObject *, DtObjectSignalMap > myObjectSignalMappings
Definition: assistantSignalRouter.h:87
std::set< QObject * > myMappedObjects
Definition: assistantSignalRouter.h:86
const char * signal() const
Definition: assistantSignalRouter.h:113
std::vector< DtQueryMappings > myQueryMappings
Signal/slot mappings for each of the query IDs.
Definition: assistantSignalRouter.h:82
const QObject * object() const
Definition: assistantSignalRouter.h:111
bool connectSignals()
Connects all of the signals to all of the slots.
~DtSignalInfo()
Destructor.
Definition: assistantSignalRouter.h:108
At startup all of the assistant manager classes will register their signals and slots with the signal...
Definition: assistantSignalRouter.h:29
QObject * object()
Definition: assistantSignalRouter.h:110
bool setResponder(QObject *obj, const char *slt)
Set the responder if not already set, otherwise return false.
Definition: assistantSignalRouter.h:186
This class handles the mappings from all query signals and slots for a particular query ID...
Definition: assistantSignalRouter.h:169
void addQuery(QObject *obj, const char *sig)
Add a new query.
Definition: assistantSignalRouter.h:180
std::map< DtAssistantSignalId, const char * > DtObjectSignalMap
Definition: assistantSignalRouter.h:84
std::vector< DtSlotInfo > mySlots
Definition: assistantSignalRouter.h:164
DtSignalInfo DtSlotInfo
This class stores the information on a single slot and the object that handles it.
Definition: assistantSignalRouter.h:126
std::vector< DtSignalInfo > mySignals
Definition: assistantSignalRouter.h:163
DtAssistantSignalId
Enumeration identifying each of the signal types.
Definition: assistantSignalIds.h:16
std::vector< DtSignalInfo > mySignals
Definition: assistantSignalRouter.h:207
DtQueryMappings()
Constructor.
Definition: assistantSignalRouter.h:174
Contains the DtAssistantSignalId enumerations.
std::map< QObject *, DtObjectQueryMap > myObjectQueryMappings
Definition: assistantSignalRouter.h:89
void printOrphans()
When there are no signals and/or no slots, print the orphans.
void addSlot(QObject *obj, const char *slt)
Add a new slot.
Definition: assistantSignalRouter.h:147
DtSignalMappings()
Constructor.
Definition: assistantSignalRouter.h:135
#define DT_DLL_ASSISTANTAPP
Definition: rtiMsConfig.h:151
const char * slot() const
Definition: assistantSignalRouter.h:114
bool isValid() const
Definition: assistantSignalRouter.h:116
DtSlotInfo mySlot
Definition: assistantSignalRouter.h:208
This class stores the information on a single signal and the object that produces it...
Definition: assistantSignalRouter.h:95
QObject * obj
Definition: assistantSignalRouter.h:119
DtAssistantQueryId
Enumeration identifying each of the query types.
Definition: assistantSignalIds.h:299
~DtQueryMappings()
Destructor.
Definition: assistantSignalRouter.h:177
This class handles the mappings from all signals and slots for a particular signal ID...
Definition: assistantSignalRouter.h:130
std::map< DtAssistantQueryId, const char * > DtObjectQueryMap
Definition: assistantSignalRouter.h:85
~DtSignalMappings()
Destructor.
Definition: assistantSignalRouter.h:138

Document ID: Generated on Sun Jul 20 16:15:30 EDT 2025 from SVN revision 277985
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)