summaryrefslogtreecommitdiffstats
path: root/src/djinterop/enginelibrary/el_crate_impl.hpp
blob: 7381f0a1f84075f597f3e43c21904e734b7ada9b (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
#pragma once

#include <djinterop/impl/crate_impl.hpp>

namespace djinterop
{
class track;

namespace enginelibrary
{
class el_storage;

class el_crate_impl : public djinterop::crate_impl
{
public:
    el_crate_impl(std::shared_ptr<el_storage> storage, int64_t id);

    void add_track(track tr) override;
    std::vector<crate> children() override;
    void clear_tracks() override;
    database db() override;
    std::vector<crate> descendants() override;
    bool is_valid() override;
    std::string name() override;
    boost::optional<crate> parent() override;
    void remove_track(track tr) override;
    void set_name(boost::string_view name) override;
    void set_parent(boost::optional<crate> parent) override;
    std::vector<track> tracks() override;

private:
    std::shared_ptr<el_storage> storage_;
};

}  // namespace enginelibrary
}  // namespace djinterop