summaryrefslogtreecommitdiff
path: root/test/src/mbgl/test/stub_style_observer.hpp
blob: f8b19aeaff42d2765ce88c6ca163e9b21b5f6d78 (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
32
33
34
35
36
37
38
#pragma once

#include <mbgl/style/observer.hpp>

using namespace mbgl;
using namespace mbgl::style;

/**
 * An implementation of style::Observer that forwards all methods to dynamically-settable lambdas.
 */
class StubStyleObserver : public style::Observer {
public:
    void onSourceLoaded(Source& source) override {
        if (sourceLoaded) sourceLoaded(source);
    }

    void onSourceChanged(Source& source) override {
        if (sourceChanged) sourceChanged(source);
    }

    void onSourceError(Source& source, std::exception_ptr error, EventSeverity) override {
        if (sourceError) sourceError(source, error);
    }

    void onSourceDescriptionChanged(Source& source) override {
        if (sourceDescriptionChanged) sourceDescriptionChanged(source);
    }

    void onResourceError(std::exception_ptr error, EventSeverity) override {
        if (resourceError) resourceError(error);
    };

    std::function<void (Source&)> sourceLoaded;
    std::function<void (Source&)> sourceChanged;
    std::function<void (Source&, std::exception_ptr)> sourceError;
    std::function<void (Source&)> sourceDescriptionChanged;
    std::function<void (std::exception_ptr)> resourceError;
};