00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #pragma once
00022
00023 #include <Inventor/sys/port.h>
00024 #include <RemoteViz/Rendering/LibHelper.h>
00025
00026 #include <string>
00027 #include <memory>
00028
00029 namespace RemoteViz
00030 {
00031 namespace Rendering
00032 {
00033
00034 class ClientImpl;
00035 class Connection;
00036 class ClientSettings;
00037 struct ClientParameters;
00038
00059 class RENDERSERVICE_API Client {
00060
00062 friend class ServiceImpl;
00063 friend class ConnectionImpl;
00066 public:
00067
00073 const std::string& getId() const;
00081 Connection* getConnection(const std::string& id) const;
00089 Connection* getConnection(unsigned int index) const;
00095 unsigned int getNumConnections() const;
00102 const std::string& getApplicationName() const;
00109 const std::string& getEnvironment() const;
00115 bool isImageStreamingSupported() const;
00121 bool isVideoStreamingSupported() const;
00134 bool sendMessage(const std::string& message, Connection** excludedConnections = nullptr, unsigned int num = 0) const;
00139 void disconnect();
00145 ClientSettings* getSettings() const;
00146
00147 private:
00149 std::shared_ptr<ClientImpl> getImpl() const;
00152 private:
00154 std::shared_ptr<ClientImpl> pImpl;
00155
00157 Client(const std::string &id, const ClientParameters& clientParameters);
00158
00159 };
00160
00161 }
00162 }
00163