#pragma once #include #include #include #include #include namespace mesosphere { class KBaseSession : public KAutoObject, public IClientServerParent { // Note: hidden from the KAutoObject hierarchy public: virtual ~KBaseSession(); // For covariant types: virtual KBaseClientSession *GetClientSession() { return &client; } virtual KBaseServerSession *GetServerSession() { return &server; } protected: Result Initialize(); KBaseSession() = default; }; inline void intrusive_ptr_add_ref(KBaseSession *obj) { intrusive_ptr_add_ref((KAutoObject *)obj); } inline void intrusive_ptr_release(KBaseSession *obj) { intrusive_ptr_release((KAutoObject *)obj); } }