blob: fd41020ab4dd9e7d18eedf13333f0bb6c90f0645 [file] [log] [blame]
Jeff Thompson5cae5e52013-07-10 19:41:20 -07001/**
2 * @author: Jeff Thompson
3 * See COPYING for copyright and distribution information.
4 */
5
6#include "common.hpp"
Jeff Thompson56ec9e22013-08-02 11:34:07 -07007#include "data.hpp"
Jeff Thompson5cae5e52013-07-10 19:41:20 -07008
9using namespace std;
10
11namespace ndn {
12
Jeff Thompson1656e6a2013-08-29 18:01:48 -070013void Signature::get(struct ndn_Signature& signatureStruct) const
Jeff Thompson5cae5e52013-07-10 19:41:20 -070014{
15 signatureStruct.digestAlgorithmLength = digestAlgorithm_.size();
16 if (digestAlgorithm_.size() > 0)
17 signatureStruct.digestAlgorithm = (unsigned char *)&digestAlgorithm_[0];
18 else
19 signatureStruct.digestAlgorithm = 0;
20
21 signatureStruct.witnessLength = witness_.size();
22 if (witness_.size() > 0)
23 signatureStruct.witness = (unsigned char *)&witness_[0];
24 else
25 signatureStruct.witness = 0;
26
27 signatureStruct.signatureLength = signature_.size();
28 if (signature_.size() > 0)
29 signatureStruct.signature = (unsigned char *)&signature_[0];
30 else
31 signatureStruct.signature = 0;
32}
33
Jeff Thompson1656e6a2013-08-29 18:01:48 -070034void Signature::set(const struct ndn_Signature& signatureStruct)
Jeff Thompson5cae5e52013-07-10 19:41:20 -070035{
36 setVector(digestAlgorithm_, signatureStruct.digestAlgorithm, signatureStruct.digestAlgorithmLength);
37 setVector(witness_, signatureStruct.witness, signatureStruct.witnessLength);
38 setVector(signature_, signatureStruct.signature, signatureStruct.signatureLength);
39}
40
Jeff Thompsonfec716d2013-09-11 13:54:36 -070041void MetaInfo::get(struct ndn_MetaInfo& metaInfoStruct) const
Jeff Thompson5cae5e52013-07-10 19:41:20 -070042{
Jeff Thompsonfec716d2013-09-11 13:54:36 -070043 publisherPublicKeyDigest_.get(metaInfoStruct.publisherPublicKeyDigest);
44 metaInfoStruct.timestampMilliseconds = timestampMilliseconds_;
45 metaInfoStruct.type = type_;
46 metaInfoStruct.freshnessSeconds = freshnessSeconds_;
Jeff Thompson5cae5e52013-07-10 19:41:20 -070047
Jeff Thompsonfec716d2013-09-11 13:54:36 -070048 metaInfoStruct.finalBlockIDLength = finalBlockID_.size();
Jeff Thompson5cae5e52013-07-10 19:41:20 -070049 if (finalBlockID_.size() > 0)
Jeff Thompsonfec716d2013-09-11 13:54:36 -070050 metaInfoStruct.finalBlockID = (unsigned char *)&finalBlockID_[0];
Jeff Thompson5cae5e52013-07-10 19:41:20 -070051 else
Jeff Thompsonfec716d2013-09-11 13:54:36 -070052 metaInfoStruct.finalBlockID = 0;
Jeff Thompson5cae5e52013-07-10 19:41:20 -070053
Jeff Thompsonfec716d2013-09-11 13:54:36 -070054 keyLocator_.get(metaInfoStruct.keyLocator);
Jeff Thompson5cae5e52013-07-10 19:41:20 -070055}
56
Jeff Thompsonfec716d2013-09-11 13:54:36 -070057void MetaInfo::set(const struct ndn_MetaInfo& metaInfoStruct)
Jeff Thompson5cae5e52013-07-10 19:41:20 -070058{
Jeff Thompsonfec716d2013-09-11 13:54:36 -070059 publisherPublicKeyDigest_.set(metaInfoStruct.publisherPublicKeyDigest);
60 timestampMilliseconds_ = metaInfoStruct.timestampMilliseconds;
61 type_ = metaInfoStruct.type;
62 freshnessSeconds_ = metaInfoStruct.freshnessSeconds;
63 setVector(finalBlockID_, metaInfoStruct.finalBlockID, metaInfoStruct.finalBlockIDLength);
64 keyLocator_.set(metaInfoStruct.keyLocator);
Jeff Thompson5cae5e52013-07-10 19:41:20 -070065}
66
Jeff Thompson1656e6a2013-08-29 18:01:48 -070067void Data::get(struct ndn_Data& dataStruct) const
Jeff Thompson5cae5e52013-07-10 19:41:20 -070068{
Jeff Thompson56ec9e22013-08-02 11:34:07 -070069 signature_.get(dataStruct.signature);
70 name_.get(dataStruct.name);
Jeff Thompsonfec716d2013-09-11 13:54:36 -070071 metaInfo_.get(dataStruct.metaInfo);
Jeff Thompson5cae5e52013-07-10 19:41:20 -070072
Jeff Thompson56ec9e22013-08-02 11:34:07 -070073 dataStruct.contentLength = content_.size();
Jeff Thompson5cae5e52013-07-10 19:41:20 -070074 if (content_.size() > 0)
Jeff Thompson56ec9e22013-08-02 11:34:07 -070075 dataStruct.content = (unsigned char *)&content_[0];
Jeff Thompson5cae5e52013-07-10 19:41:20 -070076 else
Jeff Thompson56ec9e22013-08-02 11:34:07 -070077 dataStruct.content = 0;
Jeff Thompson5cae5e52013-07-10 19:41:20 -070078}
79
Jeff Thompson1656e6a2013-08-29 18:01:48 -070080void Data::set(const struct ndn_Data& dataStruct)
Jeff Thompson5cae5e52013-07-10 19:41:20 -070081{
Jeff Thompson56ec9e22013-08-02 11:34:07 -070082 signature_.set(dataStruct.signature);
83 name_.set(dataStruct.name);
Jeff Thompsonfec716d2013-09-11 13:54:36 -070084 metaInfo_.set(dataStruct.metaInfo);
Jeff Thompson56ec9e22013-08-02 11:34:07 -070085 setVector(content_, dataStruct.content, dataStruct.contentLength);
Jeff Thompson5cae5e52013-07-10 19:41:20 -070086}
87
88}