blob: 1faba767b0a7d18dd7339b49d12b85e3badc6f35 [file] [log] [blame]
Jeff Thompson9c41dfe2013-06-27 12:10:25 -07001/*
2 * Author: Jeff Thompson
3 *
4 * BSD license, See the LICENSE file for more information.
5 */
6
7#ifndef NDN_NAME_HPP
8#define NDN_NAME_HPP
9
10#include <vector>
11#include "common.h"
12#include "encoding/BinaryXMLWireFormat.hpp"
13
14namespace ndn {
15
16class Name {
17public:
18 Name();
19 Name(const char *uri);
20
21 void encode(std::vector<unsigned char> &output, WireFormat &wireFormat) {
22 wireFormat.encodeName(*this, output);
23 }
24 void encode(std::vector<unsigned char> &output) {
25 encode(output, BinaryXMLWireFormat::instance());
26 }
Jeff Thompson42380712013-06-28 10:59:33 -070027 void decode(const unsigned char *input, unsigned int inputLength, WireFormat &wireFormat) {
28 wireFormat.decodeName(*this, input, inputLength);
Jeff Thompson9c41dfe2013-06-27 12:10:25 -070029 }
Jeff Thompson42380712013-06-28 10:59:33 -070030 void decode(const unsigned char *input, unsigned int inputLength) {
31 decode(input, inputLength, BinaryXMLWireFormat::instance());
Jeff Thompson9c41dfe2013-06-27 12:10:25 -070032 }
33
34private:
35 std::vector<std::vector<unsigned char> > components_;
36};
37
38}
39
40#endif
41