X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin4_src%2FServer%2Finclude%2Fipc.hpp;h=cb06f67e8683252a75cb8734df5970efec9931e9;hb=0868c6e02b76236ea70a6daa232b3c373f61e131;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..cb06f67e 100644 --- a/Usermode/Applications/axwin4_src/Server/include/ipc.hpp +++ b/Usermode/Applications/axwin4_src/Server/include/ipc.hpp @@ -8,20 +8,38 @@ #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 void DeregisterClient(CClient& client); +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