argument.hpp 517 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
13
14
15
16
17
18
    argument()
    {}

    argument(shape s, std::function<char*()> d)
    : data(d), shape_(s)
    {}

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

Paul's avatar
Paul committed
21
    bool empty() const
Paul's avatar
Paul committed
22
    {
Paul's avatar
Paul committed
23
        return not data;
Paul's avatar
Paul committed
24
25
    }

Paul's avatar
Paul committed
26
    const shape& get_shape() const
Paul's avatar
Paul committed
27
    {
Paul's avatar
Paul committed
28
        return this->shape_;
Paul's avatar
Paul committed
29
    }
Paul's avatar
Paul committed
30
31
private:
    shape shape_;
Paul's avatar
Paul committed
32
33
34
35
36
};

}

#endif