summaryrefslogtreecommitdiff
path: root/include/mbgl/platform/factory.hpp
blob: b9274457c01c469ae959a8968c71917a3e589156 (plain)
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
#pragma once

#include <mbgl/platform/platform_run_loop.hpp>

#include <memory>

namespace mbgl {

/**
 * @brief A factory class for platform dependent code.
 *
 * These symbols are weak and should be provided at
 * linking time by the platform linking with Mapbox GL
 * core library.
 */
class PlatformFactory {
public:
    /**
     * @brief Creates a new PlatformRunLoop object.
     *
     * A platform specific run loop that can sleep,
     * process tasks, wake-up in a thread safe-way.
     *
     * @return the platform run loop.
     */
    static std::unique_ptr<PlatformRunLoop> createRunLoop();

    PlatformFactory() = delete;
};

} // namespace mbgl