mirror of
https://github.com/debauchee/barrier.git
synced 2026-02-09 13:15:33 +08:00
event loop model. Streams, stream filters, and sockets are converted. Client proxies are almost converted. CServer is in progress. Removed all HTTP code. Haven't converted the necessary win32 arch stuff.
96 lines
2.6 KiB
C++
96 lines
2.6 KiB
C++
/*
|
|
* synergy -- mouse and keyboard sharing utility
|
|
* Copyright (C) 2002 Chris Schoeneman
|
|
*
|
|
* This package is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* found in the file COPYING that should have accompanied this file.
|
|
*
|
|
* This package is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#ifndef CCLIENTPROXY_H
|
|
#define CCLIENTPROXY_H
|
|
|
|
#include "IClient.h"
|
|
#include "CMutex.h"
|
|
#include "CString.h"
|
|
|
|
class IStream;
|
|
class IServer;
|
|
|
|
//! Generic proxy for client
|
|
class CClientProxy : public IClient {
|
|
public:
|
|
/*!
|
|
\c name is the name of the client.
|
|
*/
|
|
CClientProxy(IServer* server, const CString& name, IStream* adoptedStream);
|
|
~CClientProxy();
|
|
|
|
//! @name accessors
|
|
//@{
|
|
|
|
//! Get server
|
|
/*!
|
|
Returns the server passed to the c'tor.
|
|
*/
|
|
IServer* getServer() const;
|
|
|
|
//! Get stream
|
|
/*!
|
|
Returns the stream passed to the c'tor.
|
|
*/
|
|
IStream* getStream() const;
|
|
|
|
//@}
|
|
|
|
// IClient overrides
|
|
virtual void open() = 0;
|
|
virtual void mainLoop() = 0;
|
|
virtual void close() = 0;
|
|
virtual void enter(SInt32 xAbs, SInt32 yAbs,
|
|
UInt32 seqNum, KeyModifierMask mask,
|
|
bool forScreensaver) = 0;
|
|
virtual bool leave() = 0;
|
|
virtual void setClipboard(ClipboardID, const CString&) = 0;
|
|
virtual void grabClipboard(ClipboardID) = 0;
|
|
virtual void setClipboardDirty(ClipboardID, bool) = 0;
|
|
virtual void keyDown(KeyID, KeyModifierMask, KeyButton) = 0;
|
|
virtual void keyRepeat(KeyID, KeyModifierMask,
|
|
SInt32 count, KeyButton) = 0;
|
|
virtual void keyUp(KeyID, KeyModifierMask, KeyButton) = 0;
|
|
virtual void mouseDown(ButtonID) = 0;
|
|
virtual void mouseUp(ButtonID) = 0;
|
|
virtual void mouseMove(SInt32 xAbs, SInt32 yAbs) = 0;
|
|
virtual void mouseWheel(SInt32 delta) = 0;
|
|
virtual void screensaver(bool activate) = 0;
|
|
virtual void resetOptions() = 0;
|
|
virtual void setOptions(const COptionsList& options) = 0;
|
|
virtual CString getName() const;
|
|
virtual SInt32 getJumpZoneSize() const = 0;
|
|
virtual void getShape(SInt32& x, SInt32& y,
|
|
SInt32& width, SInt32& height) const = 0;
|
|
virtual void getCursorPos(SInt32& x, SInt32& y) const = 0;
|
|
virtual void getCursorCenter(SInt32& x, SInt32& y) const = 0;
|
|
|
|
protected:
|
|
//! Get mutex
|
|
/*!
|
|
Returns the mutex for this object. Subclasses should use this
|
|
mutex to protect their data.
|
|
*/
|
|
const CMutex* getMutex() const;
|
|
|
|
private:
|
|
CMutex m_mutex;
|
|
IServer* m_server;
|
|
CString m_name;
|
|
IStream* m_stream;
|
|
};
|
|
|
|
#endif
|