summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/session.cpp
blob: 1c1fc440da034ca6e8f24438d28392d9914c792d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Copyright 2019 yuzu emulator team
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.

#include "common/assert.h"
#include "core/hle/kernel/client_session.h"
#include "core/hle/kernel/server_session.h"
#include "core/hle/kernel/session.h"

namespace Kernel {

Session::Session(KernelCore& kernel) : SynchronizationObject{kernel} {}
Session::~Session() = default;

Session::SessionPair Session::Create(KernelCore& kernel, std::string name) {
    auto session{std::make_shared<Session>(kernel)};
    auto client_session{Kernel::ClientSession::Create(kernel, session, name + "_Client").Unwrap()};
    auto server_session{Kernel::ServerSession::Create(kernel, session, name + "_Server").Unwrap()};

    session->name = std::move(name);
    session->client = client_session;
    session->server = server_session;

    return std::make_pair(std::move(client_session), std::move(server_session));
}

bool Session::ShouldWait(const Thread* thread) const {
    UNIMPLEMENTED();
    return {};
}

void Session::Acquire(Thread* thread) {
    UNIMPLEMENTED();
}

} // namespace Kernel