lp-packet.h
1 
22 #ifndef NDN_LP_PACKET_H
23 #define NDN_LP_PACKET_H
24 
25 #include "../util/blob.h"
26 #include <ndn-cpp/c/errors.h>
27 #include <ndn-cpp/c/lp/lp-packet-types.h>
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
40 static __inline void
41 ndn_LpPacket_initialize
42  (struct ndn_LpPacket *self, struct ndn_LpPacketHeaderField *headerFields,
43  size_t maxHeaderFields)
44 {
45  self->headerFields = headerFields;
46  self->maxHeaderFields = maxHeaderFields;
47  self->nHeaderFields = 0;
48  ndn_Blob_initialize(&self->fragmentWireEncoding, 0, 0);
49 }
50 
55 static __inline void
56 ndn_LpPacket_clear(struct ndn_LpPacket *self)
57 {
58  self->nHeaderFields = 0;
59  ndn_Blob_initialize(&self->fragmentWireEncoding, 0, 0);
60 }
61 
70 static __inline ndn_Error
71 ndn_LpPacket_addEmptyHeaderField
72  (struct ndn_LpPacket *self, struct ndn_LpPacketHeaderField **headerField)
73 {
74  if (self->nHeaderFields >= self->maxHeaderFields)
75  return NDN_ERROR_cannot_add_an_entry_past_the_maximum_number_of_entries_allowed_in_the_LpPacket;
76  *headerField = self->headerFields + self->nHeaderFields;
77  ++self->nHeaderFields;
78 
79  return NDN_ERROR_success;
80 }
81 
82 #ifdef __cplusplus
83 }
84 #endif
85 
86 #endif
An ndn_LpPacketHeaderField holds a type and a union with values for the different types of LP packet ...
Definition: lp-packet-types.h:45
An ndn_LpPacket holds a list of LP packet header fields and an optional fragment wire encoding...
Definition: lp-packet-types.h:57