forked from ShuriZma/suyu
1
0
Fork 0

fixup! Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.

This commit is contained in:
Subv 2016-06-17 15:24:38 -05:00
parent 073653e858
commit 0a33d915f8
4 changed files with 6 additions and 5 deletions

View File

@ -84,13 +84,13 @@ public:
*/
bool IsWaitable() const {
switch (GetHandleType()) {
case HandleType::ServerSession:
case HandleType::ServerPort:
case HandleType::Event:
case HandleType::Mutex:
case HandleType::Thread:
case HandleType::Semaphore:
case HandleType::Timer:
case HandleType::ServerPort:
case HandleType::ServerSession:
return true;
case HandleType::Unknown:
@ -101,6 +101,7 @@ public:
case HandleType::ResourceLimit:
case HandleType::CodeSet:
case HandleType::ClientPort:
case HandleType::ClientSession:
return false;
}
}

View File

@ -48,7 +48,7 @@ SharedPtr<ClientSession> ServerSession::CreateClientSession() {
return ClientSession::Create(SharedPtr<ServerSession>(this), nullptr, name + "Client").MoveFrom();
}
std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>> ServerSession::CreateSessionPair(SharedPtr<ClientPort> client_port, std::string name) {
std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>> ServerSession::CreateSessionPair(SharedPtr<ClientPort> client_port, const std::string& name) {
auto server_session = ServerSession::Create(name + "Server").MoveFrom();
auto client_session = ClientSession::Create(server_session, client_port, name + "Client").MoveFrom();

View File

@ -200,7 +200,7 @@ public:
* @param name Optional name of the ports
* @return The created session tuple
*/
static std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>> CreateSessionPair(SharedPtr<ClientPort> client_port, std::string name = "Unknown");
static std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>> CreateSessionPair(SharedPtr<ClientPort> client_port, const std::string& name = "Unknown");
/**
* Creates a portless ClientSession and associates it with this ServerSession.

View File

@ -40,7 +40,7 @@ public:
* It should be overwritten by each service implementation for more fine-grained control.
* @returns The maximum number of connections allowed.
*/
virtual u32 GetMaxSessions() { return DefaultMaxSessions; }
virtual u32 GetMaxSessions() const { return DefaultMaxSessions; }
void AddWaitingSession(Kernel::SharedPtr<Kernel::ServerSession> server_session) override { }