~aleteoryx/muditaos

ref: 1d2f5cf7a49cf1fb9463d289daa1492a2bec2d1d muditaos/module-services/service-appmgr/include/service-appmgr/model/ApplicationsRegistry.hpp -rw-r--r-- 878 bytes
1d2f5cf7 — Piotr Tański [EGD-7754] Dates bumped in disclaimers 4 years ago
                                                                                
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
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include "ApplicationHandle.hpp"

#include <memory>
#include <vector>

namespace app::manager
{
    using ApplicationsContainer = std::vector<std::unique_ptr<ApplicationHandle>>;

    class ApplicationsRegistry
    {
      public:
        explicit ApplicationsRegistry(std::vector<std::unique_ptr<app::ApplicationLauncher>> &&launchers);

        [[nodiscard]] auto getAll() const noexcept -> const ApplicationsContainer &;
        [[nodiscard]] auto findByName(const ApplicationName &name) const -> ApplicationHandle *;
        [[nodiscard]] auto findByAction(actions::ActionId action) const -> std::vector<ApplicationHandle *>;

      private:
        ApplicationsContainer applications;
    };
} // namespace app::manager