Kernel/HLE: Service::Interface no longer inherits from any Kernel object, and is now its own standalone class.

Interface is now used by aggregation in ClientPort, to forward service commands to their HLE implementation if needed.
This commit is contained in:
Subv 2016-06-17 17:09:43 -05:00
parent 0a33d915f8
commit c19afd2118
4 changed files with 52 additions and 24 deletions

View file

@ -97,17 +97,13 @@ void Interface::Register(const FunctionInfo* functions, size_t n) {
// Module interface
static void AddNamedPort(Interface* interface_) {
interface_->name = interface_->GetPortName();
interface_->active_sessions = 0;
interface_->max_sessions = interface_->GetMaxSessions();
g_kernel_named_ports.emplace(interface_->GetPortName(), interface_);
auto client_port = Kernel::ClientPort::CreateForHLE(interface_->GetMaxSessions(), std::unique_ptr<Interface>(interface_));
g_kernel_named_ports.emplace(interface_->GetPortName(), client_port);
}
void AddService(Interface* interface_) {
interface_->name = interface_->GetPortName();
interface_->active_sessions = 0;
interface_->max_sessions = interface_->GetMaxSessions();
g_srv_services.emplace(interface_->GetPortName(), interface_);
auto client_port = Kernel::ClientPort::CreateForHLE(interface_->GetMaxSessions(), std::unique_ptr<Interface>(interface_));
g_srv_services.emplace(interface_->GetPortName(), client_port);
}
/// Initialize ServiceManager