COVISE Core
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
VrbClientRegistry.h
Go to the documentation of this file.
1 /* This file is part of COVISE.
2 
3  You can use it under the terms of the GNU Lesser General Public License
4  version 2.1 or later, see lgpl-2.1.txt.
5 
6  * License: LGPL 2+ */
7 
8 #ifndef VrbClientRegistry_H
9 #define VrbClientRegistry_H
10 
11 #include <net/tokenbuffer.h>
12 #include <map>
13 #include "regClass.h"
14 #include <util/coExport.h>
15 #include "VrbRegistry.h"
16 #include "SessionID.h"
17 namespace covise
18 {
19 class VRBClient;
20 }
21 namespace vrb
22 {
23 class VrbMessageSenderInterface;
24 class VRBEXPORT VrbClientRegistry : public VrbRegistry<clientRegClass, clientRegVar>
25 {
26 public:
31  void setID(int clID, const SessionID &session);
33  void resubscribe(const SessionID &sessionID, const SessionID &oldSession = SessionID());
34 
42  clientRegClass *subscribeClass(const SessionID &sessionID, const std::string &clName, regClassObserver *ob);
43 
51  clientRegVar *subscribeVar(const SessionID &sessionID, const std::string &cl, const std::string &var, covise::TokenBuffer &&value, regVarObserver *ob);
52 
59  void unsubscribeClass(const SessionID &sessionID, const std::string &cl);
60 
68  void unsubscribeVar(const std::string &cl, const std::string &var, bool unsubscribeServerOnly = false);
69 
79  void createVar(const SessionID sessionID, const std::string &cl, const std::string &var, covise::TokenBuffer &value, bool isStatic = false);
80 
89  void setVar(const SessionID sessionID, const std::string &cl, const std::string &var, covise::TokenBuffer &&val, bool muted = false);
90 
99  void destroyVar(const SessionID sessionID, const std::string &cl, const std::string &var);
100 
105  clientRegClass *getClass(const std::string &name);
107 
108  void update(covise::TokenBuffer &tb, int reason);
109 
110  virtual ~VrbClientRegistry();
112 
113  int getID() override
114  {
115  return clientID;
116  }
118  {
119  return sessionID;
120  }
121 
122  std::shared_ptr<clientRegClass> createClass(const std::string &name, int id) override;
123 private:
124  int clientID = -1;
127 
128 };
129 }
130 
131 
132 #endif
Definition: regClass.h:254
Definition: VrbMessageSenderInterface.h:19
SessionID sessionID
Definition: VrbClientRegistry.h:125
SessionID getSession()
Definition: VrbClientRegistry.h:117
GLsizei const GLchar *const * string
Definition: khronos-glext.h:6750
Definition: regClass.h:225
Definition: SessionID.h:19
GLuint const GLchar * name
Definition: khronos-glext.h:6722
Definition: regClass.h:286
Definition: VrbClientRegistry.h:24
covise_msg_type
Definition: message_types.h:64
#define VRBEXPORT
Definition: coExport.h:81
GLsizei const GLfloat * value
Definition: khronos-glext.h:6760
GLuint GLfloat * val
Definition: khronos-glext.h:7898
Definition: VrbRegistry.h:18
static VrbClientRegistry * instance
Definition: VrbClientRegistry.h:27
int getID() override
Definition: VrbClientRegistry.h:113
VrbMessageSenderInterface * m_sender
Definition: VrbClientRegistry.h:126
GLenum type
Definition: khronos-glext.h:6279
Definition: regClass.h:291
Definition: tokenbuffer.h:74