blob: 02009b9f7b1071cec986f89179b219e70a4279de [file] [log] [blame]
Jeff Thompson8238d002013-07-10 11:56:49 -07001/**
2 * @author: Jeff Thompson
3 * See COPYING for copyright and distribution information.
4 */
5
6#ifndef NDN_PUBLISHERPUBLICKEYDIGEST_HPP
Jeff Thompson2d27e2f2013-08-09 12:55:00 -07007#define NDN_PUBLISHERPUBLICKEYDIGEST_HPP
Jeff Thompson8238d002013-07-10 11:56:49 -07008
9#include <vector>
Jeff Thompson51dd5fd2013-07-10 19:27:18 -070010#include "common.hpp"
Jeff Thompson53412192013-08-06 13:35:50 -070011#include "c/publisher-public-key-digest.h"
Jeff Thompson8238d002013-07-10 11:56:49 -070012
13namespace ndn {
14
15/**
16 * A PublisherPublicKeyDigest holds the publisher public key digest value, if any.
17 * We make a separate class since this is used by multiple other classes.
18 */
19class PublisherPublicKeyDigest {
20public:
21 PublisherPublicKeyDigest() {
22 }
23
24 /**
25 * Set the publisherPublicKeyDigestStruct to point to the entries in this PublisherPublicKeyDigest, without copying any memory.
26 * WARNING: The resulting pointers in publisherPublicKeyDigestStruct are invalid after a further use of this object which could reallocate memory.
27 * @param publisherPublicKeyDigestStruct a C ndn_PublisherPublicKeyDigest struct to receive the pointer
28 */
29 void get(struct ndn_PublisherPublicKeyDigest &publisherPublicKeyDigestStruct) const
30 {
31 publisherPublicKeyDigestStruct.publisherPublicKeyDigestLength = publisherPublicKeyDigest_.size();
32 if (publisherPublicKeyDigest_.size() > 0)
33 publisherPublicKeyDigestStruct.publisherPublicKeyDigest = (unsigned char *)&publisherPublicKeyDigest_[0];
34 else
35 publisherPublicKeyDigestStruct.publisherPublicKeyDigest = 0;
36 }
37
38 /**
39 * Clear this PublisherPublicKeyDigest, and copy from the ndn_PublisherPublicKeyDigest struct.
40 * @param excludeStruct a C ndn_Exclude struct
41 */
Jeff Thompsondd3d2292013-07-10 11:59:44 -070042 void set(const struct ndn_PublisherPublicKeyDigest &publisherPublicKeyDigestStruct)
Jeff Thompson8238d002013-07-10 11:56:49 -070043 {
Jeff Thompson51dd5fd2013-07-10 19:27:18 -070044 setVector(publisherPublicKeyDigest_, publisherPublicKeyDigestStruct.publisherPublicKeyDigest,
45 publisherPublicKeyDigestStruct.publisherPublicKeyDigestLength);
Jeff Thompson8238d002013-07-10 11:56:49 -070046 }
47
48 const std::vector<unsigned char> &getPublisherPublicKeyDigest() const { return publisherPublicKeyDigest_; }
Jeff Thompsonac1b0ac2013-08-08 20:09:39 -070049 std::vector<unsigned char> &getPublisherPublicKeyDigest() { return publisherPublicKeyDigest_; }
Jeff Thompson8238d002013-07-10 11:56:49 -070050
Jeff Thompson46bd45f2013-08-08 16:46:41 -070051 void setPublisherPublicKeyDigest(const std::vector<unsigned char> &publisherPublicKeyDigest) { publisherPublicKeyDigest_ = publisherPublicKeyDigest; }
52 void setPublisherPublicKeyDigest(const unsigned char *publisherPublicKeyDigest, unsigned int publisherPublicKeyDigestLength)
53 {
54 setVector(publisherPublicKeyDigest_, publisherPublicKeyDigest, publisherPublicKeyDigestLength);
55 }
56
Jeff Thompson8238d002013-07-10 11:56:49 -070057private:
Jeff Thompson2d27e2f2013-08-09 12:55:00 -070058 std::vector<unsigned char> publisherPublicKeyDigest_;
Jeff Thompson8238d002013-07-10 11:56:49 -070059};
60
61}
62
63#endif