blob: 9e52613c31423dfa96e35d9d7d9a4ccb4bea152a [file] [log] [blame]
Jeff Thompson47eecfc2013-07-07 22:56:46 -07001/**
2 * @author: Jeff Thompson
3 * See COPYING for copyright and distribution information.
Jeff Thompson2d28d492013-07-01 17:57:53 -07004 */
5
6#ifndef NDN_BINARYXMLENCODER_HPP
Jeff Thompson2d27e2f2013-08-09 12:55:00 -07007#define NDN_BINARYXMLENCODER_HPP
Jeff Thompson2d28d492013-07-01 17:57:53 -07008
Jeff Thompson58d798f2013-07-02 14:16:25 -07009#include <vector>
Jeff Thompsonb0979fd2013-07-30 15:48:21 -070010#include "../common.hpp"
Jeff Thompsonfaaa2372013-08-12 13:16:35 -070011#include "../util/dynamic-uchar-vector.hpp"
Jeff Thompson53412192013-08-06 13:35:50 -070012#include "../c/encoding/binary-xml-encoder.h"
Jeff Thompson2d28d492013-07-01 17:57:53 -070013
14namespace ndn {
15
16/**
Jeff Thompsonf0fea002013-07-30 17:22:42 -070017 * A BinaryXmlEncoder extends a C ndn_BinaryXmlEncoder struct and wraps related functions.
Jeff Thompson2d28d492013-07-01 17:57:53 -070018 */
Jeff Thompsonf0fea002013-07-30 17:22:42 -070019class BinaryXmlEncoder : public ndn_BinaryXmlEncoder {
Jeff Thompson2d28d492013-07-01 17:57:53 -070020public:
21 /**
Jeff Thompsonf0fea002013-07-30 17:22:42 -070022 * Initialize the base ndn_BinaryXmlEncoder struct with an initial array of 16 bytes. Use simpleRealloc.
Jeff Thompson2d28d492013-07-01 17:57:53 -070023 */
Jeff Thompsonf0fea002013-07-30 17:22:42 -070024 BinaryXmlEncoder()
Jeff Thompsoneced5802013-08-12 13:34:52 -070025 : output_(16)
Jeff Thompson2d28d492013-07-01 17:57:53 -070026 {
Jeff Thompson27194b42013-08-12 13:33:12 -070027 ndn_BinaryXmlEncoder_init(this, &output_);
Jeff Thompson2d28d492013-07-01 17:57:53 -070028 }
29
30 /**
Jeff Thompsonb0979fd2013-07-30 15:48:21 -070031 * Return the output as a shared_ptr.
Jeff Thompson58d798f2013-07-02 14:16:25 -070032 */
Jeff Thompsonb0979fd2013-07-30 15:48:21 -070033 ptr_lib::shared_ptr<std::vector<unsigned char> > getOutput()
Jeff Thompson58d798f2013-07-02 14:16:25 -070034 {
Jeff Thompsonfaaa2372013-08-12 13:16:35 -070035 return output_.get();
Jeff Thompson58d798f2013-07-02 14:16:25 -070036 }
Jeff Thompsonfaaa2372013-08-12 13:16:35 -070037
38 DynamicUCharVector output_;
Jeff Thompson2d28d492013-07-01 17:57:53 -070039};
40
41}
42
43#endif