blob: 5b48ccff801e49ce974b12930b52aae5ecd0397a [file] [log] [blame]
Zhenkai Zhu43eb2732012-12-28 00:48:26 -08001#ifndef CCNX_CONTENT_OBJECT_H
2#define CCNX_CONTENT_OBJECT_H
3
4#include <boost/exception/all.hpp>
5#include <boost/shared_ptr.hpp>
6#include "ccnx-wrapper.h"
7
8using namespace std;
9
10namespace Ccnx {
11
12struct MisformedContentObjectException : virtual boost::exception, virtual exception { };
13
14class ParsedContentObject
15{
16public:
17 ParsedContentObject(const unsigned char *data, size_t len);
18 ParsedContentObject(const Bytes &bytes);
19 ParsedContentObject(const ParsedContentObject &other);
20 virtual ~ParsedContentObject();
21
22 Bytes
Zhenkai Zhubad089c2012-12-28 10:28:27 -080023 content() const;
Zhenkai Zhu43eb2732012-12-28 00:48:26 -080024
25 string
Zhenkai Zhubad089c2012-12-28 10:28:27 -080026 name() const;
Zhenkai Zhu43eb2732012-12-28 00:48:26 -080027
28protected:
29 ccn_parsed_ContentObject m_pco;
30 ccn_indexbuf *m_comps;
31 Bytes m_bytes;
32};
33
34typedef boost::shared_ptr<ParsedContentObject> PcoPtr;
35
36}
37
38#endif // CCNX_CONTENT_OBJECT_H