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

#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> runLoop();

    PlatformFactory() = delete;
}

} // namespace mbgl