blob: 0dba6320c7979e4abdbe7c355b465545a91fb53c [file] [log] [blame]
Jeff Thompson76317aa2013-06-25 19:11:48 -07001/*
2 * Author: Jeff Thompson
3 *
4 * BSD license, See the LICENSE file for more information.
5 */
6
7#ifndef NDN_BINARYXMLDECODER_H
8#define NDN_BINARYXMLDECODER_H
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14struct ndn_BinaryXMLDecoder {
15 const unsigned char *input;
Jeff Thompsonf7316692013-06-26 21:31:42 -070016 unsigned int inputLength;
Jeff Thompson76317aa2013-06-25 19:11:48 -070017 unsigned int offset;
18};
19
Jeff Thompsonf7316692013-06-26 21:31:42 -070020static void ndn_BinaryXMLDecoder_init(struct ndn_BinaryXMLDecoder *self, const unsigned char *input, unsigned int inputLength) {
Jeff Thompson76317aa2013-06-25 19:11:48 -070021 self->input = input;
Jeff Thompsonf7316692013-06-26 21:31:42 -070022 self->inputLength = inputLength;
Jeff Thompson76317aa2013-06-25 19:11:48 -070023 self->offset = 0;
24}
25
26// Even though the first byte should not be zero, this silently ignores initial zeros.
27const char *ndn_BinaryXMLDecoder_decodeTypeAndValue(struct ndn_BinaryXMLDecoder *self, unsigned int *type, unsigned int *value);
28
Jeff Thompsonf7316692013-06-26 21:31:42 -070029/**
30 * Set the offset into the input, used for the next read.
31 * @param self pointer to the ndn_BinaryXMLDecoder struct
32 * @param offset the new offset
33 */
34static inline void ndn_BinaryXMLDecoder_seek(struct ndn_BinaryXMLDecoder *self, unsigned int offset) {
35 self->offset = offset;
36}
37
Jeff Thompson76317aa2013-06-25 19:11:48 -070038#ifdef __cplusplus
39}
40#endif
41
42#endif