chunk.h (1187B)
1 #include <iostream> 2 #include <memory> 3 #include <vector> 4 5 // HEADER (this data is encoded in the image itself): 6 // chunk number 4 bytes 7 // characters 4 bytes 8 // fnamelen 4 bytes 9 // filename fnamelen 10 11 struct Header { 12 uint chunkNumber; 13 uint characters; 14 uint fnameLength; 15 std::string filename; 16 }; 17 18 class Chunk{ 19 20 private: 21 std::vector<char> chunk; 22 std::string extractEncodedSection(const std::string& fileString, uint& itr, int count); 23 std::string binaryToAscii(const std::string& binaryStr); 24 Header header; 25 26 public: 27 Chunk(std::string filename, uint start, uint x, uint y); 28 Chunk(std::vector<char> chunkData); 29 // read in the written chunk from pbm format. 30 Chunk(std::string filename); 31 std::vector<char> getChunk(); 32 std::string getFilename() const; 33 int getChunkNumber() const; 34 // assumes header is populated in private member. 35 36 bool operator<(const Chunk& other) const; 37 38 void writeChunk(); 39 void writeChunk(std::string filename); 40 void writeImage(std::string filename, uint chunkNumber, std::string originalFilename, uint x, uint y); 41 void print(); 42 std::string toString(); 43 uint written; 44 }; 45