VR-Forces 4.3 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 
16 #include <vrvCore/vrvCore.h>
18 #include <vrvCore/DtDeRecord.h>
19 #include <boost/signal.hpp>
20 #include <list>
21 #include <string>
22 
23 namespace makVrv
24 {
25  class DtDe;
26  class DtTcpServer;
27  class DtMessageDispatcher;
28  class DtDriverConfiguration;
29  class DtIgCommunicatorSignaler;
30 
35  {
36  public:
37 
39 
40  typedef std::list<DtDeRecord> IgRecords;
41 
43  virtual ~DtDeCommunicator();
44 
46  virtual bool initialize();
47 
50  virtual void listenForMasterIg();
51 
53  virtual bool hasMasterIg() const;
54 
56  virtual void disconnectMasterIg(const std::string& masterName);
57 
61  bool connectToSlaveIg(const std::string& slaveAddr,int port, std::string& igNameOut);
62 
64  void disconnectSlaveIg(const std::string& name);
65 
67  virtual void tick();
68 
70  /*virtual const DtDriverConfiguration& configuration() const;*/
71 
73  virtual void addIgRecord(const DtDeRecord& record);
74 
76  virtual void removeIgRecord(const DtDeRecord& record);
77 
80  DtDeRecord& hostIgRecord();
81 
83  DtDeRecord* findRecordByIgName(const std::string& igName);
84 
86  DtDeRecord* findRecordByDisplayName(const std::string& displayName);
87 
89  bool masterIgOnly() const;
90 
92  const IgRecords& connectedIgs() const;
93 
96  virtual const std::string& name() const;
97 
100  static const char* className();
101 
102  protected:
103 
106 
107  protected:
108 
109  static const char* myClassName;
110 
113  std::string myName;
117  };
118 
122  {
123 
124  public:
125 
127  static DtIgCommunicatorSignaler& instance(DtDe& de);
128 
130  virtual ~DtIgCommunicatorSignaler();
131 
133 
134 
136  boost::signal<void (const std::string&)> signal_masterIgConnected;
137 
139  boost::signal<void (const std::string&)> signal_masterIgLost;
140 
142  boost::signal<void (const DtDeRecord&)> signal_clientAdded;
143 
145  boost::signal<void (const std::string&)> signal_clientToByDeleted;
146 
148  boost::signal<void (const std::string&)> signal_clientModified;
149 
151 
152  protected:
153 
155 
156  };
157 
158 
162  {
163  public:
164 
166  static DtDeCommunicatorCreator& instance(DtDe&);
167 
169  static void registerInstance(DtDe& de,DtDeCommunicatorCreator*);
170 
172  virtual DtDeCommunicator* create(DtDe& de, DtDriverConfiguration& config);
173  };
174 
175 }
176 
177 #endif

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)