VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtDeCommunicator.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtDeCommunicator.h,v $ $Revision: 1.39 $ $State: Exp $
7 ******************************************************************************/
8 
12 
13 #ifndef DtDeCommunicator_H_
14 #define DtDeCommunicator_H_
15 
17 #include <vrvCore/DtDeRecord.h>
18 #include <boost/signal.hpp>
19 #include <list>
20 #include <string>
21 
22 namespace makVrv
23 {
24  class DtDe;
25  class DtTcpServer;
26  class DtMessageDispatcher;
27  class DtDriverConfiguration;
28  class DtIgCommunicatorSignaler;
29 
34  {
35  public:
36 
38 
39  typedef std::list<DtDeRecord> IgRecords;
40 
42  virtual ~DtDeCommunicator();
43 
45  virtual bool initialize();
46 
49  virtual void listenForMasterIg();
50 
52  virtual bool hasMasterIg() const;
53 
55  virtual void disconnectMasterIg(const std::string& masterName);
56 
60  bool connectToSlaveIg(const std::string& slaveAddr,int port, std::string& igNameOut);
61 
63  void disconnectSlaveIg(const std::string& name);
64 
66  virtual void tick();
67 
69  /*virtual const DtDriverConfiguration& configuration() const;*/
70 
72  virtual void addIgRecord(const DtDeRecord& record);
73 
75  virtual void removeIgRecord(const DtDeRecord& record);
76 
79  DtDeRecord& hostIgRecord();
80 
82  DtDeRecord* findRecordByIgName(const std::string& igName);
83 
85  DtDeRecord* findRecordByDisplayName(const std::string& displayName);
86 
88  bool masterIgOnly() const;
89 
91  const IgRecords& connectedIgs() const;
92 
95  virtual const std::string& name() const;
96 
99  static const char* className();
100 
101  protected:
102 
105 
106  protected:
107 
108  static const char* myClassName;
109 
112  std::string myName;
116  };
117 
121  {
122 
123  public:
124 
126  static DtIgCommunicatorSignaler& instance(DtDe& de);
127 
129  virtual ~DtIgCommunicatorSignaler();
130 
132 
133 
135  boost::signal<void (const std::string&)> signal_masterIgConnected;
136 
138  boost::signal<void (const std::string&)> signal_masterIgLost;
139 
141  boost::signal<void (const DtDeRecord&)> signal_clientAdded;
142 
144  boost::signal<void (const std::string&)> signal_clientToByDeleted;
145 
147  boost::signal<void (const std::string&)> signal_clientModified;
148 
150 
151  protected:
152 
154 
155  };
156 
157 
161  {
162  public:
163 
165  static DtDeCommunicatorCreator& instance(DtDe&);
166 
168  static void registerInstance(DtDe& de,DtDeCommunicatorCreator*);
169 
171  virtual DtDeCommunicator* create(DtDe& de, DtDriverConfiguration& config);
172  };
173 
174 }
175 
176 #endif

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)