blob: 452d39b3820f09c0bf3f4b2cdef581770e784183 [file] [log] [blame]
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
/**
* Copyright (C) 2013 Regents of the University of California.
* @author: Jeff Thompson <jefft0@remap.ucla.edu>
* See COPYING for copyright and distribution information.
*/
#include <stdexcept>
#include <ndn-cpp/common.hpp>
#include <ndn-cpp/forwarding-entry.hpp>
#include "c/forwarding-entry.h"
using namespace std;
namespace ndn {
void
ForwardingEntry::set(const struct ndn_ForwardingEntry& forwardingEntryStruct)
{
if (forwardingEntryStruct.action.value && forwardingEntryStruct.action.length > 0)
action_ = string(forwardingEntryStruct.action.value, forwardingEntryStruct.action.value + forwardingEntryStruct.action.length);
else
action_ = "";
prefix_.set(forwardingEntryStruct.prefix);
publisherPublicKeyDigest_.set(forwardingEntryStruct.publisherPublicKeyDigest);
faceId_ = forwardingEntryStruct.faceId;
forwardingFlags_ = forwardingEntryStruct.forwardingFlags;
freshnessSeconds_ = forwardingEntryStruct.freshnessSeconds;
}
void
ForwardingEntry::get(struct ndn_ForwardingEntry& forwardingEntryStruct) const
{
prefix_.get(forwardingEntryStruct.prefix);
publisherPublicKeyDigest_.get(forwardingEntryStruct.publisherPublicKeyDigest);
forwardingEntryStruct.faceId = faceId_;
forwardingEntryStruct.forwardingFlags = forwardingFlags_;
forwardingEntryStruct.freshnessSeconds = freshnessSeconds_;
forwardingEntryStruct.action.length = action_.size();
if (action_.size() > 0)
forwardingEntryStruct.action.value = (uint8_t *)&action_[0];
else
forwardingEntryStruct.action.value = 0;
}
}