blob: 10291858da20ae9889ffa2ef309723edec41c7f9 [file] [log] [blame]
Jeff Thompson8dc775b2013-08-29 17:16:42 -07001/**
Jeff Thompson7687dc02013-09-13 11:54:07 -07002 * Copyright (C) 2013 Regents of the University of California.
3 * @author: Jeff Thompson <jefft0@remap.ucla.edu>
Jeff Thompson8dc775b2013-08-29 17:16:42 -07004 * See COPYING for copyright and distribution information.
5 */
6
7#ifndef NDN_BLOB_H
8#define NDN_BLOB_H
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14/**
15 * An ndn_Blob holds a pointer to a read-only pre-allocated buffer and its length.
16 */
17struct ndn_Blob {
Jeff Thompson10ad12a2013-09-24 16:19:11 -070018 uint8_t *value; /**< pointer to the pre-allocated buffer for the value. Must be treated as read only. */
Jeff Thompson97223af2013-09-24 17:01:27 -070019 size_t valueLength; /**< the number of bytes in value. */
Jeff Thompson8dc775b2013-08-29 17:16:42 -070020};
21
22/**
23 * Initialize the ndn_Blob struct with the given value.
24 * @param self pointer to the ndn_Blob struct.
25 * @param value The pre-allocated buffer for the value, or 0 for none.
26 * @param valueLength The number of bytes in value.
27 */
Jeff Thompson97223af2013-09-24 17:01:27 -070028static inline void ndn_Blob_initialize(struct ndn_Blob *self, uint8_t *value, size_t valueLength)
Jeff Thompson8dc775b2013-08-29 17:16:42 -070029{
30 self->value = value;
31 self->valueLength = valueLength;
32}
33
34#ifdef __cplusplus
35}
36#endif
37
38#endif