argument.hpp 495 Bytes
Newer Older
Paul's avatar
Paul committed
1
2
3
4
#ifndef GUARD_RTGLIB_ARGUMENT_HPP
#define GUARD_RTGLIB_ARGUMENT_HPP

#include <rtg/shape.hpp>
Paul's avatar
Paul committed
5
#include <rtg/raw_data.hpp>
Paul's avatar
Paul committed
6
7
8
9
#include <functional>

namespace rtg {

Paul's avatar
Paul committed
10
struct argument : raw_data<argument>
Paul's avatar
Paul committed
11
{
Paul's avatar
Paul committed
12
    argument() {}
Paul's avatar
Paul committed
13

Paul's avatar
Paul committed
14
    argument(shape s, std::function<char*()> d) : data(d), shape_(s) {}
Paul's avatar
Paul committed
15

Paul's avatar
Paul committed
16
    std::function<char*()> data;
Paul's avatar
Paul committed
17

Paul's avatar
Paul committed
18
    bool empty() const { return not data; }
Paul's avatar
Paul committed
19

Paul's avatar
Paul committed
20
21
22
    const shape& get_shape() const { return this->shape_; }

    private:
Paul's avatar
Paul committed
23
    shape shape_;
Paul's avatar
Paul committed
24
25
};

Paul's avatar
Paul committed
26
} // namespace rtg
Paul's avatar
Paul committed
27
28

#endif