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