From f2e650c53a32e5501cd3da4c16e2ea6598940140 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Mon, 21 Aug 2017 22:31:14 +0200 Subject: [PATCH] builtin commands for read and write file --- alib2cli/src/builtin/ReadFile.cpp | 27 +++++++++++++++++++++++++++ alib2cli/src/builtin/ReadFile.h | 26 ++++++++++++++++++++++++++ alib2cli/src/builtin/WriteFile.cpp | 25 +++++++++++++++++++++++++ alib2cli/src/builtin/WriteFile.h | 26 ++++++++++++++++++++++++++ 4 files changed, 104 insertions(+) create mode 100644 alib2cli/src/builtin/ReadFile.cpp create mode 100644 alib2cli/src/builtin/ReadFile.h create mode 100644 alib2cli/src/builtin/WriteFile.cpp create mode 100644 alib2cli/src/builtin/WriteFile.h diff --git a/alib2cli/src/builtin/ReadFile.cpp b/alib2cli/src/builtin/ReadFile.cpp new file mode 100644 index 0000000000..605b0a67e1 --- /dev/null +++ b/alib2cli/src/builtin/ReadFile.cpp @@ -0,0 +1,27 @@ +/* + * ReadFile.cpp + * + * Created on: 21. 8. 2017 + * Author: Jan Travnicek + */ + +#include "ReadFile.h" +#include <registration/AlgoRegistration.hpp> +#include <fstream> +#include <streambuf> + +namespace cli { + +namespace builtin { + +std::string ReadFile::read ( const std::string & data ) { + std::ifstream t ( data ); + return std::string ( ( std::istreambuf_iterator < char > ( t ) ), std::istreambuf_iterator < char > ( ) ); +} + +auto ReadFileString = registration::AbstractRegister < ReadFile, std::string, const std::string & > ( ReadFile::read ); + +} /* namespace builtin */ + +} /* namespace cli */ + diff --git a/alib2cli/src/builtin/ReadFile.h b/alib2cli/src/builtin/ReadFile.h new file mode 100644 index 0000000000..4611821e4b --- /dev/null +++ b/alib2cli/src/builtin/ReadFile.h @@ -0,0 +1,26 @@ +/* + * ReadFile.h + * + * Created on: 16. 8. 2017 + * Author: Jan Travnicek + */ + +#ifndef _READ_FILE_H_ +#define _READ_FILE_H_ + +#include <string> + +namespace cli { + +namespace builtin { + +class ReadFile { +public: + static std::string read ( const std::string & filename ); +}; + +} /* namespace builtin */ + +} /* namespace cli */ + +#endif /* _READ_FILE_H_ */ diff --git a/alib2cli/src/builtin/WriteFile.cpp b/alib2cli/src/builtin/WriteFile.cpp new file mode 100644 index 0000000000..88761ff055 --- /dev/null +++ b/alib2cli/src/builtin/WriteFile.cpp @@ -0,0 +1,25 @@ +/* + * WriteFile.cpp + * + * Created on: 21. 8. 2017 + * Author: Jan Travnicek + */ + +#include "WriteFile.h" +#include <registration/AlgoRegistration.hpp> +#include <fstream> + +namespace cli { + +namespace builtin { + +void WriteFile::write ( const std::string & filename, const std::string & data ) { + std::ofstream ( filename ) << data; +} + +auto WriteFileString = registration::AbstractRegister < WriteFile, void, const std::string &, const std::string & > ( WriteFile::write ); + +} /* namespace builtin */ + +} /* namespace cli */ + diff --git a/alib2cli/src/builtin/WriteFile.h b/alib2cli/src/builtin/WriteFile.h new file mode 100644 index 0000000000..c968cd1c2a --- /dev/null +++ b/alib2cli/src/builtin/WriteFile.h @@ -0,0 +1,26 @@ +/* + * WriteFile.h + * + * Created on: 16. 8. 2017 + * Author: Jan Travnicek + */ + +#ifndef _WRITE_FILE_H_ +#define _WRITE_FILE_H_ + +#include <string> + +namespace cli { + +namespace builtin { + +class WriteFile { +public: + static void write ( const std::string & filename, const std::string & data ); +}; + +} /* namespace builtin */ + +} /* namespace cli */ + +#endif /* _WRITE_FILE_H_ */ -- GitLab