00001 /* 00002 * PayloadBlockFactory.h 00003 * 00004 * Created on: 19.02.2009 00005 * Author: morgenro 00006 */ 00007 00008 #include "BlockFactory.h" 00009 #include "PayloadBlock.h" 00010 #include "AdministrativeBlock.h" 00011 #include "CustodySignalBlock.h" 00012 #include "StatusReportBlock.h" 00013 00014 #ifndef PAYLOADBLOCKFACTORY_H_ 00015 #define PAYLOADBLOCKFACTORY_H_ 00016 00017 namespace dtn { namespace data 00018 { 00019 class PayloadBlockFactory : public BlockFactory 00020 { 00021 public: 00022 PayloadBlockFactory(); 00023 00030 virtual Block* parse(const unsigned char *data, unsigned int size); 00031 00037 virtual Block* copy(const Block &block); 00038 00045 static PayloadBlock* newPayloadBlock(const unsigned char *data, unsigned int size); 00046 00047 static StatusReportBlock* newStatusReportBlock(); 00048 static CustodySignalBlock* newCustodySignalBlock(bool accepted); 00049 00057 static PayloadBlock* merge(PayloadBlock *p1, PayloadBlock *p2, unsigned int p2offset); 00058 00065 static AdministrativeBlock* castAdministrativeBlock(PayloadBlock *block); 00066 00067 virtual char getBlockType() const; 00068 }; 00069 } } 00070 00071 #endif /* PAYLOADBLOCKFACTORY_H_ */
1.5.6