MAK RTIspy API Documentation for HLA Evolved
 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 

Document ID: Generated on Mon Jul 9 10:30:41 EDT 2018 from SVN revision 190224
Copyright © 2005-2018 VT MÄK Inc. All Rights Reserved (www.mak.com)