summaryrefslogtreecommitdiff
path: root/src/mbgl/style/applied_class_properties.hpp
blob: bd8409559033ef0016777f3af4fb7f6654cb2546 (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
39
#ifndef MBGL_STYLE_APPLIED_CLASS_PROPERTIES
#define MBGL_STYLE_APPLIED_CLASS_PROPERTIES

#include <mbgl/style/property_value.hpp>
#include <mbgl/style/class_dictionary.hpp>

#include <list>
#include <chrono>

namespace mbgl {

class AppliedClassProperty {
public:
    AppliedClassProperty(ClassID class_id, std::chrono::steady_clock::time_point begin, std::chrono::steady_clock::time_point end, const PropertyValue &value);

public:
    const ClassID name;
    const std::chrono::steady_clock::time_point begin;
    const std::chrono::steady_clock::time_point end;
    const PropertyValue value;
};


class AppliedClassProperties {
public:
    std::list<AppliedClassProperty> properties;

public:
    // Returns the ID of the most recent
    ClassID mostRecent() const;
    void add(ClassID class_id, std::chrono::steady_clock::time_point begin, std::chrono::steady_clock::time_point end, const PropertyValue &value);
    bool hasTransitions() const;
    void cleanup(std::chrono::steady_clock::time_point now);
    bool empty() const;
};

}

#endif