IBR-DTNSuite 0.6

ibrdtn/ibrdtn/api/PlainSerializer.h

Go to the documentation of this file.
00001 /*
00002  * PlainSerializer.h
00003  *
00004  *  Created on: 16.06.2011
00005  *      Author: morgenro
00006  */
00007 
00008 #ifndef PLAINSERIALIZER_H_
00009 #define PLAINSERIALIZER_H_
00010 
00011 #include <ibrdtn/data/Serializer.h>
00012 #include <ibrdtn/data/Bundle.h>
00013 #include <ibrdtn/data/PrimaryBlock.h>
00014 #include <ibrdtn/data/Block.h>
00015 
00016 namespace dtn
00017 {
00018         namespace api
00019         {
00020                 class PlainSerializer : public dtn::data::Serializer
00021                 {
00022                 public:
00023                         PlainSerializer(std::ostream &stream);
00024                         virtual ~PlainSerializer();
00025 
00026                         dtn::data::Serializer &operator<<(const dtn::data::Bundle &obj);
00027                         dtn::data::Serializer &operator<<(const dtn::data::PrimaryBlock &obj);
00028                         dtn::data::Serializer &operator<<(const dtn::data::Block &obj);
00029 
00030                         size_t getLength(const dtn::data::Bundle &obj);
00031                         size_t getLength(const dtn::data::PrimaryBlock &obj) const;
00032                         size_t getLength(const dtn::data::Block &obj) const;
00033 
00034                 private:
00035                         std::ostream &_stream;
00036                 };
00037 
00038                 class PlainDeserializer : public dtn::data::Deserializer
00039                 {
00040                 public:
00041                         PlainDeserializer(std::istream &stream);
00042                         virtual ~PlainDeserializer();
00043 
00044                         dtn::data::Deserializer &operator>>(dtn::data::Bundle &obj);
00045                         dtn::data::Deserializer &operator>>(dtn::data::PrimaryBlock &obj);
00046                         dtn::data::Deserializer &operator>>(dtn::data::Block &obj);
00047 
00048                 private:
00052                         dtn::data::Deserializer &operator>>(std::ostream &stream);
00053 
00054                         std::istream &_stream;
00055                 };
00056         }
00057 }
00058 
00059 #endif /* PLAINSERIALIZER_H_ */