blob: 52f5a949f9c4bb4d9f65917384de4bebc5efe35f [file] [log] [blame]
/**
* @author: Jeff Thompson
* See COPYING for copyright and distribution information.
*/
#ifndef NDN_INTEREST_H
#define NDN_INTEREST_H
#include "Name.h"
#ifdef __cplusplus
extern "C" {
#endif
struct ndn_Interest {
struct ndn_Name name;
int minSuffixComponents; /**< -1 for none */
int maxSuffixComponents; /**< -1 for none */
unsigned char *publisherPublicKeyDigest; /**< pointer to pre-allocated buffer. 0 for none */
unsigned int publisherPublicKeyDigestLength; /**< length of publisherPublicKeyDigest. 0 for none */
// TODO: implement exclude
int childSelector; /**< -1 for none */
int answerOriginKind; /**< -1 for none */
int scope; /**< -1 for none */
int interestLifetime; /**< milliseconds. -1 for none */
unsigned char *nonce; /**< pointer to pre-allocated buffer. 0 for none */
unsigned int nonceLength; /**< length of nonce. 0 for none */
};
static inline void ndn_Interest_init(struct ndn_Interest *self, struct ndn_NameComponent *nameComponents, unsigned int maxNameComponents)
{
ndn_Name_init(&self->name, nameComponents, maxNameComponents);
self->minSuffixComponents = -1;
self->maxSuffixComponents = -1;
self->publisherPublicKeyDigest = 0;
self->publisherPublicKeyDigestLength = 0;
// TODO: implement exclude
self->childSelector = -1;
self->answerOriginKind = -1;
self->scope = -1;
self->interestLifetime = -1;
self->nonce = 0;
self->nonceLength = 0;
}
#ifdef __cplusplus
}
#endif
#endif