DataConversion.h

Go to the documentation of this file.
00001 #ifndef ROSE_DATA_CONVERSION_H
00002 #define ROSE_DATA_CONVERSION_H
00003 
00004 #include <string>
00005 
00009 class DataConverter {
00010 public:
00011     virtual ~DataConverter() {}
00012 
00014     virtual std::string name() const = 0;
00015 
00019     virtual uint8_t* encode(uint8_t* buffer, size_t* nbytes) = 0;
00020 
00024     virtual uint8_t* decode(uint8_t* buffer, size_t* nbytes) = 0;
00025 };
00026 
00028 class Rot13: public DataConverter {
00029     virtual ~Rot13() {}
00030     virtual std::string name() const {return "ROT-13";}
00031     virtual uint8_t* encode(uint8_t* buffer, size_t* nbytes) {
00032         for (size_t i=0; i<*nbytes; i++)
00033             buffer[i] += 13;
00034         return buffer;
00035     }
00036     virtual uint8_t* decode(uint8_t* buffer, size_t* nbytes) {
00037         for (size_t i=0; i<*nbytes; i++)
00038             buffer[i] -= 13;
00039         return buffer;
00040     }
00041 };
00042 
00043 #endif

Generated on Mon Aug 30 21:32:46 2010 for ROSE by  doxygen 1.4.7