blob: a57429d4ef0be2a835cde95580173fbd147aca0e [file] [log] [blame]
/**
* Copyright (C) 2013 Regents of the University of California.
* @author: Jeff Thompson <jefft0@remap.ucla.edu>
* See COPYING for copyright and distribution information.
*/
#ifndef NDN_FORWARDING_ENTRY_H
#define NDN_FORWARDING_ENTRY_H
#include "common.h"
#include "name.h"
#include "publisher-public-key-digest.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* An ndn_ForwardingEntry holds fields for a ForwardingEntry which is used to register a prefix with a hub.
*/
struct ndn_ForwardingEntry {
uint8_t *action; /**< pointer to pre-allocated buffer. 0 for none. */
size_t actionLength; /**< length of action. 0 for none. */
struct ndn_Name prefix;
struct ndn_PublisherPublicKeyDigest publisherPublicKeyDigest;
int faceId; /**< -1 for none. */
int forwardingFlags; /**< -1 for none. */
int freshnessSeconds; /**< -1 for none. */
};
/**
* Initialize an ndn_ForwardingEntry struct with the pre-allocated prefixNameComponents,
* and defaults for all the values.
* @param self pointer to the ndn_Interest struct
* @param prefixNameComponents the pre-allocated array of ndn_NameComponent
* @param maxPrefixNameComponents the number of elements in the allocated prefixNameComponents array
*/
static inline void ndn_ForwardingEntry_initialize
(struct ndn_ForwardingEntry *self, struct ndn_NameComponent *prefixNameComponents, size_t maxPrefixNameComponents)
{
self->action = 0;
self->actionLength = 0;
ndn_Name_initialize(&self->prefix, prefixNameComponents, maxPrefixNameComponents);
ndn_PublisherPublicKeyDigest_initialize(&self->publisherPublicKeyDigest);
self->faceId = -1;
self->forwardingFlags = -1;
self->freshnessSeconds = -1;
}
#ifdef __cplusplus
}
#endif
#endif