VR-Forces 4.5 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) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 #pragma once
10 
12 #include <vrvCore/DtDeRecord.h>
13 #include <boost/signal.hpp>
14 #include <list>
15 #include <string>
16 
17 namespace makVrv
18 {
19  class DtDe;
20  class DtTcpServer;
21  class DtMessageDispatcher;
22  class DtDriverConfiguration;
23  class DtIgCommunicatorSignaler;
24  class DtDeRemoteDisplayReconnector;
25 
30  {
31  public:
32 
34 
35  typedef std::list<DtDeRecord> IgRecords;
36 
38  virtual ~DtDeCommunicator();
39 
41  virtual bool initialize();
42 
45  virtual void listenForMasterIg();
46 
48  virtual bool hasMasterIg() const;
49 
51  virtual void disconnectMasterIg(const std::string& masterName);
52 
56  bool connectToSlaveIg(const std::string& slaveAddr,int port, std::string& igNameOut);
57 
62  void disconnectSlaveIg(const std::string& name, bool lostConnection=false);
63 
65  virtual void tick();
66 
68  /*virtual const DtDriverConfiguration& configuration() const;*/
69 
71  virtual void addIgRecord(const DtDeRecord& record);
72 
76  virtual void removeIgRecord(const DtDeRecord& record, bool lostConnection=false );
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;
118  };
119 
123  {
124 
125  public:
126 
128  static DtIgCommunicatorSignaler& instance(DtDe& de);
129 
131  virtual ~DtIgCommunicatorSignaler();
132 
134 
135 
137  boost::signal<void (const std::string&)> signal_masterIgConnected;
138 
140  boost::signal<void (const std::string&)> signal_masterIgLost;
141 
143  boost::signal<void (const DtDeRecord&)> signal_clientAdded;
144 
148  boost::signal<void (const std::string& clientName, bool lostConnection)> signal_clientToByDeleted;
149 
151  boost::signal<void (const std::string&)> signal_clientModified;
152 
154 
155  protected:
156 
158 
159  };
160 
161 
165  {
166  public:
167 
169  static DtDeCommunicatorCreator& instance(DtDe&);
170 
172  static void registerInstance(DtDe& de,DtDeCommunicatorCreator*);
173 
175  virtual DtDeCommunicator* create(DtDe& de, DtDriverConfiguration& config);
176  };
177 
178 }
179 

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)