summaryrefslogtreecommitdiffstats
blob: f2dc5b90e82138355b7fd86db43bb75eb058ae29 (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*
 * Copyright (c) 2011-2016 Isode Limited.
 * All rights reserved.
 * See the COPYING file for more information.
 */

#pragma once

#include <memory>
#include <string>

#include <boost/date_time/posix_time/posix_time_types.hpp>

#include <Swiften/Base/API.h>
#include <Swiften/Elements/Payload.h>

namespace Swift {

class SWIFTEN_API StreamInitiationFileInfo : public Payload {
public:
    typedef std::shared_ptr<StreamInitiationFileInfo> ref;

public:
    StreamInitiationFileInfo(const std::string& name = "", const std::string& description = "", unsigned long long size = 0,
                 const std::string& hash = "", const boost::posix_time::ptime &date = boost::posix_time::ptime(), const std::string& algo="md5") :
        name(name), description(description), size(size), hash(hash), date(date), algo(algo), supportsRangeRequests(false), rangeOffset(0) {}

    void setName(const std::string& name) {
        this->name = name;;
    }

    const std::string& getName() const {
        return this->name;
    }

    void setDescription(const std::string& description) {
        this->description = description;
    }

    const std::string& getDescription() const {
        return this->description;
    }

    void setSize(const unsigned long long size) {
        this->size = size;
    }

    unsigned long long getSize() const {
        return this->size;
    }

    void setHash(const std::string& hash) {
        this->hash = hash;
    }

    const std::string& getHash() const {
        return this->hash;
    }

    void setDate(const boost::posix_time::ptime& date) {
        this->date = date;
    }

    const boost::posix_time::ptime& getDate() const {
        return this->date;
    }

    void setAlgo(const std::string& algo) {
        this->algo = algo;
    }

    const std::string& getAlgo() const {
        return this->algo;
    }

    void setSupportsRangeRequests(const bool supportsIt) {
        supportsRangeRequests = supportsIt;
    }

    bool getSupportsRangeRequests() const {
        return supportsRangeRequests;
    }

    void setRangeOffset(unsigned long long offset) {
        supportsRangeRequests = true;
        rangeOffset = offset;
    }

    unsigned long long getRangeOffset() const {
        return rangeOffset;
    }

private:
    std::string name;
    std::string description;
    unsigned long long size;
    std::string hash;
    boost::posix_time::ptime date;
    std::string algo;
    bool supportsRangeRequests;
    unsigned long long rangeOffset;
};

}