unlimited-storage

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit b3ac8d603e00e9bd9b3d0d5996895d977483b60f
parent ef801fa5c976793ad267b0d134f271d9d50a9eca
Author: Andrew Laack <andrew@laack.co>
Date:   Thu, 10 Jul 2025 14:08:06 -0500

Created chunk class for reading and writing a chunk of a file.

Diffstat:
Asrc/chunk.cpp | 50++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/chunk.h | 16++++++++++++++++
Msrc/encode.cpp | 27++++++++++++++++++++++++---
3 files changed, 90 insertions(+), 3 deletions(-)

diff --git a/src/chunk.cpp b/src/chunk.cpp @@ -0,0 +1,50 @@ +# include "chunk.h" +# include <iostream> +# include <fstream> + +Chunk::Chunk(std::vector<char> chunkData){ + this->chunk = chunkData; +} + +Chunk::Chunk(std::string filename, uint start = 0, uint size = 1000){ + + std::ifstream file; + + file.open(filename, std::ios::binary); + file.seekg(start); + + std::vector<char> bytes; + + char byte; + uint itr = 0; + + while (file.read(&byte, 1) && itr < size) { + bytes.push_back(byte); + itr += 1; + } + + file.close(); + this->chunk = bytes; +} + +std::vector<char> Chunk::getChunk(){ + return this->chunk; +} + +void Chunk::writeChunk(std::string filename){ + + std::ofstream outFile; + std::vector<char> bytes = this->chunk; + + outFile.open(filename, std::ios::binary | std::ios::out); + + for(int i = 0 ; i < bytes.size(); ++i){ + outFile.write(&bytes[i], 1); + } +} + +void Chunk::print(){ + for(int i = 0 ; i < this->chunk.size(); ++i){ + std::cout << chunk[i]; + } +} diff --git a/src/chunk.h b/src/chunk.h @@ -0,0 +1,16 @@ +#include <iostream> +#include <memory> +#include <vector> + +class Chunk{ + +private: + std::vector<char> chunk; + +public: + Chunk(std::string filename, uint start, uint size); + Chunk(std::vector<char> chunkData); + std::vector<char> getChunk(); + void writeChunk(std::string filename); + void print(); +}; diff --git a/src/encode.cpp b/src/encode.cpp @@ -1,6 +1,27 @@ -#include <iostream> +#include <vector> +#include <fstream> +#include "chunk.h" + +int main(int argc, char* argv[]){ + + if (argc < 3){ + std::cout << "Provide two CLI arguments for source and destination" << std::endl; + return 10; + } + + std::string source = argv[1]; + std::string destination = argv[2]; + + Chunk chunk = Chunk(source, 0, 1000000); + chunk.print(); + std::vector<char> bytes = chunk.getChunk(); + + std::ofstream outFile; + + Chunk outChunk = Chunk(bytes); + outChunk.writeChunk(destination); -int main(){ - std::cout << "Hello world" << std::endl; return 0; } + +