79 void connect(
size_t addressIndex = 0);
127 return m_resolvedAddressesCount;
135 void getShape(int32_t &
x, int32_t &
y, int32_t &width, int32_t &height) const override;
139 void enter(int32_t xAbs, int32_t yAbs, uint32_t seqNum,
KeyModifierMask mask,
bool forScreensaver) override;
140 bool leave() override;
149 void mouseMove(int32_t xAbs, int32_t yAbs) override;
151 void mouseWheel(int32_t xDelta, int32_t yDelta) override;
160 void sendConnectionFailedEvent(const
char *msg);
161 void setupConnecting();
162 void setupConnection();
166 void cleanupConnecting();
167 void cleanupConnection();
168 void cleanupScreen();
170 void cleanupStream();
171 void handleConnected();
172 void handleConnectionFailed(const
Event &event);
173 void handleConnectTimeout();
174 void handleOutputError();
175 void handleDisconnected();
176 void handleShapeChanged();
177 void handleClipboardGrabbed(const
Event &event);
179 void handleSuspend();
181 void sendClipboardThread(
void *);
182 void bindNetworkInterface(
IDataSocket *socket) const;
189 deskflow::IStream *m_stream =
nullptr;
192 bool m_ready = false;
193 bool m_active = false;
194 bool m_suspended = false;
195 bool m_connectOnResume = false;
201 bool m_useSecureNetwork = false;
202 bool m_enableClipboard = true;
203 size_t m_maximumClipboardSize = INT_MAX;
204 size_t m_resolvedAddressesCount = 0;
205 std::unique_ptr<
deskflow::client::HelloBack> m_pHelloBack;
static const struct sockaddr FAR * name
Definition ArchNetworkWinsock.cpp:28
static const ClipboardID kClipboardEnd
Definition ClipboardTypes.h:30
uint8_t ClipboardID
Clipboard ID.
Definition ClipboardTypes.h:16
EventTypes
Definition EventTypes.h:13
uint32_t KeyID
Key ID.
Definition KeyTypes.h:21
uint16_t KeyButton
Key Code.
Definition KeyTypes.h:34
uint32_t KeyModifierMask
Modifier key mask.
Definition KeyTypes.h:44
uint8_t ButtonID
Mouse button ID.
Definition MouseTypes.h:16
std::vector< uint32_t > OptionsList
Definition OptionTypes.h:26
int y
Definition ServerConfig.cpp:25
int x
Definition ServerConfig.cpp:24
std::string m_what
Definition Client.h:51
bool m_retry
Definition Client.h:50
FailInfo(const char *what)
Definition Client.h:46
void enter(int32_t xAbs, int32_t yAbs, uint32_t seqNum, KeyModifierMask mask, bool forScreensaver) override
Enter screen.
Definition Client.cpp:198
void resetOptions() override
Notify of options changes.
Definition Client.cpp:287
void grabClipboard(ClipboardID) override
Grab clipboard.
Definition Client.cpp:230
void keyUp(KeyID, KeyModifierMask, KeyButton) override
Notify of key release.
Definition Client.cpp:252
void mouseRelativeMove(int32_t xRel, int32_t yRel) override
Notify of mouse motion.
Definition Client.cpp:272
virtual void handshakeComplete()
Notify of handshake complete.
Definition Client.cpp:156
Client(IEventQueue *events, const std::string &name, const NetworkAddress &address, ISocketFactory *socketFactory, deskflow::Screen *screen)
Definition Client.cpp:38
void refuseConnection(const char *msg)
Refuse connection.
Definition Client.cpp:144
std::string getName() const override
Get client name.
Definition Client.cpp:320
void keyRepeat(KeyID, KeyModifierMask, int32_t count, KeyButton, const std::string &lang) override
Notify of key repeat.
Definition Client.cpp:247
void screensaver(bool activate) override
Notify of screen saver change.
Definition Client.cpp:282
void setOptions(const OptionsList &options) override
Notify of options changes.
Definition Client.cpp:292
void connect(size_t addressIndex=0)
Connect to server.
Definition Client.cpp:82
void disconnect(const char *msg)
Disconnect.
Definition Client.cpp:133
bool getClipboard(ClipboardID id, IClipboard *) const override
Get clipboard.
Definition Client.cpp:183
Client(Client const &)=delete
void mouseWheel(int32_t xDelta, int32_t yDelta) override
Notify of mouse wheel motion.
Definition Client.cpp:277
NetworkAddress getServerAddress() const
Get address of server.
Definition Client.cpp:173
void mouseMove(int32_t xAbs, int32_t yAbs) override
Notify of mouse motion.
Definition Client.cpp:267
void keyDown(KeyID, KeyModifierMask, KeyButton, const std::string &) override
Notify of key press.
Definition Client.cpp:242
void mouseUp(ButtonID) override
Notify of mouse release.
Definition Client.cpp:262
void setClipboardDirty(ClipboardID, bool) override
Mark clipboard dirty.
Definition Client.cpp:237
void mouseDown(ButtonID) override
Notify of mouse press.
Definition Client.cpp:257
bool isConnecting() const
Test if connecting.
Definition Client.cpp:168
bool isConnected() const
Test if connected.
Definition Client.cpp:163
void setClipboard(ClipboardID, const IClipboard *) override
Set clipboard.
Definition Client.cpp:223
void getShape(int32_t &x, int32_t &y, int32_t &width, int32_t &height) const override
Get screen shape.
Definition Client.cpp:188
void * getEventTarget() const final
Get event target.
Definition Client.cpp:178
size_t getLastResolvedAddressesCount() const
Return last resolved adresses count.
Definition Client.h:125
Client & operator=(Client &&)=delete
bool leave() override
Leave screen.
Definition Client.cpp:205
void getCursorPos(int32_t &x, int32_t &y) const override
Get cursor position.
Definition Client.cpp:193
~Client() override
Definition Client.cpp:70
Client & operator=(Client const &)=delete
Definition EventQueueTimer.h:12
Event.
Definition Event.h:29
Client interface.
Definition IClient.h:24
Clipboard interface.
Definition IClipboard.h:19
Data stream socket interface.
Definition IDataSocket.h:21
Event queue interface.
Definition IEventQueue.h:29
Socket factory.
Definition ISocketFactory.h:23
Network address type.
Definition NetworkAddress.h:17
Proxy for server.
Definition ServerProxy.h:30
TCP data socket.
Definition TCPSocket.h:28
Thread handle.
Definition Thread.h:33
Bidirectional stream interface.
Definition IStream.h:22
Platform independent screen.
Definition Screen.h:30
Definition EventTypes.h:11