X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin4_src%2FServer%2Finclude%2Fipc.hpp;h=50b0dbe25e3041f129980679d83739cd578c03bb;hb=6fbf6b93bec9b8b5bd6d7c683eefb0ebed8dff77;hp=439f3eac408ed4e9913ef578ebf9853267e3c8f3;hpb=340e7923b1e95c39ac85a4b22af7f1b53b315cd9;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin4_src/Server/include/ipc.hpp b/Usermode/Applications/axwin4_src/Server/include/ipc.hpp index 439f3eac..50b0dbe2 100644 --- a/Usermode/Applications/axwin4_src/Server/include/ipc.hpp +++ b/Usermode/Applications/axwin4_src/Server/include/ipc.hpp @@ -8,20 +8,45 @@ #ifndef _IPC_H_ #define _IPC_H_ +#include + extern "C" { #include }; +#include #include namespace AxWin { + class CCompositor; +class CClient; namespace IPC { -extern void Initialise(const CConfigIPC& config, CCompositor* compositor); +extern void Initialise(const CConfigIPC& config, CCompositor& compositor); extern int FillSelect(::fd_set& rfds); -extern void HandleSelect(::fd_set& rfds); +extern void HandleSelect(const ::fd_set& rfds); +extern void RegisterClient(CClient& client); +extern CClient* GetClientByID(uint16_t id); +extern void DeregisterClient(CClient& client); + +extern void SendMessage_NotifyDims(CClient& client, unsigned int WinID, unsigned int NewW, unsigned int NewH); +extern void SendMessage_MouseButton(CClient& client, unsigned int WinID, unsigned int X, unsigned int Y, uint8_t Button, bool Pressed); +extern void SendMessage_MouseMove(CClient& client, unsigned int WinID, unsigned int X, unsigned int Y); +extern void SendMessage_KeyEvent(CClient& client, unsigned int WinID, uint32_t KeySym, bool Pressed, const char *Translated); + +extern void HandleMessage(CClient& client, CDeserialiser& message); + +class CClientFailure: + public ::std::exception +{ + const std::string m_what; +public: + CClientFailure(std::string&& what); + ~CClientFailure() throw(); + const char *what() const throw(); +}; }; // namespace IPC }; // namespace AxWin