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 
17 class QObject;
18 class DtSignalMappings;
19 class DtQueryMappings;
20 
28 {
29 public:
30 
33 
36 
39  void connectSignals();
40 
42  void registerSignal( DtAssistantSignalId sigId, QObject* obj,
43  const char* sig);
44 
47  void registerSlot( DtAssistantSignalId sigId, QObject* obj,
48  const char* slot);
49 
53  void registerQuery( DtAssistantQueryId queryId, QObject* obj,
54  const char* sig);
55 
60  bool registerQueryResponder( DtAssistantQueryId queryId, QObject* obj,
61  const char* slot);
62 
63 private:
64 
67 
70 
71 protected:
72 
74  std::vector<DtSignalMappings> mySignalMappings;
75 
77  std::vector<DtQueryMappings> myQueryMappings;
78 };
79 
80 
84 {
85 public:
86 
88  DtSignalInfo(QObject* o, const char* s) :
89  obj(o), sig(s) {}
90 
93  obj(0), sig(0) {}
94 
97 
98  QObject* object() { return obj; }
99 
100  const char* signal() { return sig; }
101  const char* slot() { return sig; }
102 
103  bool isValid() { return (obj != 0 && sig != 0); }
104 
105 protected:
107  const char* sig;
108 };
109 
114 
118 {
119 public:
120 
122  DtSignalMappings() { mySignals.clear(); mySlots.clear(); };
123 
126 
128  void addSignal(QObject* obj, const char* sig)
129  {
130  mySignals.push_back(DtSignalInfo(obj, sig));
131  }
132 
134  void addSlot(QObject* obj, const char* slt)
135  {
136  mySlots.push_back(DtSlotInfo(obj, slt));
137  }
138 
141  bool connectSignals();
142 
143 protected:
144 
145  std::vector<DtSignalInfo> mySignals;
146  std::vector<DtSlotInfo> mySlots;
147 };
148 
152 {
153 public:
154 
157 
160 
162  void addQuery(QObject* obj, const char* sig)
163  {
164  mySignals.push_back(DtSignalInfo(obj, sig));
165  }
166 
168  bool setResponder(QObject* obj, const char* slt)
169  {
170  if(mySlot.isValid())
171  {
172  return false;
173  }
174  mySlot = DtSlotInfo(obj, slt);
175  return true;
176  }
177 
180  bool connectSignals();
181 
182 protected:
183 
184  std::vector<DtSignalInfo> mySignals;
186 };
187 
188 #endif //assistantSignalRouter_H_
189 

Document ID: Generated on Mon Mar 21 09:41:37 EDT 2016 from SVN revision 163228
Copyright © 2005-2015 VT MÄK Inc. All Rights Reserved (www.mak.com)