diff options
Diffstat (limited to 'common/rfb/CMsgHandler.h')
-rw-r--r-- | common/rfb/CMsgHandler.h | 59 |
1 files changed, 29 insertions, 30 deletions
diff --git a/common/rfb/CMsgHandler.h b/common/rfb/CMsgHandler.h index b484b695..d267ae47 100644 --- a/common/rfb/CMsgHandler.h +++ b/common/rfb/CMsgHandler.h @@ -27,63 +27,62 @@ #include <stdint.h> #include <rfb/ServerParams.h> -#include <rfb/Rect.h> -#include <rfb/ScreenSet.h> -namespace rdr { class InStream; } +namespace core { + struct Point; + struct Rect; +} namespace rfb { + class ModifiablePixelBuffer; + struct ScreenSet; + class CMsgHandler { public: - CMsgHandler(); - virtual ~CMsgHandler(); - // The following methods are called as corresponding messages are - // read. A derived class should override these methods as desired. - // Note that for the setDesktopSize(), setExtendedDesktopSize(), - // setName(), serverInit() and handleClipboardCaps() methods, a - // derived class should call on to CMsgHandler's methods to set the - // members of "server" appropriately. + // read. A derived class must override these methods. - virtual void setDesktopSize(int w, int h); + virtual void setDesktopSize(int w, int h) = 0; virtual void setExtendedDesktopSize(unsigned reason, unsigned result, int w, int h, - const ScreenSet& layout); - virtual void setCursor(int width, int height, const Point& hotspot, + const ScreenSet& layout) = 0; + virtual void setCursor(int width, int height, const + core::Point& hotspot, const uint8_t* data) = 0; - virtual void setCursorPos(const Point& pos) = 0; - virtual void setName(const char* name); - virtual void fence(uint32_t flags, unsigned len, const uint8_t data[]); - virtual void endOfContinuousUpdates(); - virtual void supportsQEMUKeyEvent(); - virtual void supportsExtendedMouseButtons(); + virtual void setCursorPos(const core::Point& pos) = 0; + virtual void setName(const char* name) = 0; + virtual void fence(uint32_t flags, unsigned len, + const uint8_t data[]) = 0; + virtual void endOfContinuousUpdates() = 0; + virtual void supportsQEMUKeyEvent() = 0; + virtual void supportsExtendedMouseButtons() = 0; virtual void serverInit(int width, int height, const PixelFormat& pf, const char* name) = 0; - virtual bool readAndDecodeRect(const Rect& r, int encoding, + virtual bool readAndDecodeRect(const core::Rect& r, int encoding, ModifiablePixelBuffer* pb) = 0; - virtual void framebufferUpdateStart(); - virtual void framebufferUpdateEnd(); - virtual bool dataRect(const Rect& r, int encoding) = 0; + virtual void framebufferUpdateStart() = 0; + virtual void framebufferUpdateEnd() = 0; + virtual bool dataRect(const core::Rect& r, int encoding) = 0; virtual void setColourMapEntries(int firstColour, int nColours, uint16_t* rgbs) = 0; virtual void bell() = 0; virtual void serverCutText(const char* str) = 0; - virtual void setLEDState(unsigned int state); + virtual void setLEDState(unsigned int state) = 0; virtual void handleClipboardCaps(uint32_t flags, - const uint32_t* lengths); - virtual void handleClipboardRequest(uint32_t flags); - virtual void handleClipboardPeek(); - virtual void handleClipboardNotify(uint32_t flags); + const uint32_t* lengths) = 0; + virtual void handleClipboardRequest(uint32_t flags) = 0; + virtual void handleClipboardPeek() = 0; + virtual void handleClipboardNotify(uint32_t flags) = 0; virtual void handleClipboardProvide(uint32_t flags, const size_t* lengths, - const uint8_t* const* data); + const uint8_t* const* data) = 0; ServerParams server; }; |