blob: 9576c09c4fa77b72db7c61cc15003981d4ae7466 [file] [log] [blame]
peizhen guocf4df2d2014-08-12 13:22:32 -07001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/**
3 * Copyright (c) 2014, Regents of the University of California
4 *
5 * This file is part of NSL (NDN Signature Logger).
6 * See AUTHORS.md for complete list of NSL authors and contributors.
7 *
8 * NSL is free software: you can redistribute it and/or modify it under the terms
9 * of the GNU General Public License as published by the Free Software Foundation,
10 * either version 3 of the License, or (at your option) any later version.
11 *
12 * NSL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
13 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 * PURPOSE. See the GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along with
17 * NSL, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
18 *
19 * @author Peizhen Guo <patrick.guopz@gmail.com>
20 */
21#ifndef NLS_CORE_LEAF_HPP
22#define NLS_CORE_LEAF_HPP
23
24#include <vector>
25#include <ndn-cxx/util/crypto.hpp>
26#include "node.hpp"
27
28namespace nsl {
29
30class Leaf : public Node
31{
32public:
33
34 Leaf()
35 : Node()
36 {
37 }
38
39
40 Leaf(ndn::ConstBufferPtr data, uint64_t sequenceNumber, uint64_t level, time_t timestamp)
41 : Node(sequenceNumber, level, timestamp), m_data(data)
42 {
43 }
44
45
46 Leaf(const Leaf& new_leaf)
47 : Node(new_leaf.getIndex().number, new_leaf.getIndex().level, new_leaf.getTimestamp())
48 {
49 m_data = new_leaf.getData();
50 this->setHash(new_leaf.getHash());
51 }
52
53
54 ~Leaf()
55 {
56 }
57
58 ndn::ConstBufferPtr
59 getData() const;
60
61
62 void
63 computeHash();
64
65private:
66 ndn::ConstBufferPtr m_data;
67};
68
69} // namespace nsl
70
71#endif // NLS_CORE_LEAF_HPP