aboutsummaryrefslogtreecommitdiff
path: root/src/function/read_file.cc
diff options
context:
space:
mode:
authorAdrian Kummerländer2014-04-30 18:48:23 +0200
committerAdrian Kummerländer2014-04-30 18:48:23 +0200
commit42a0b31ebc10bea7e205e04c12b590afbcc27b3d (patch)
tree0545a36ba6288f57db40fe12c4f54af243ea78bf /src/function/read_file.cc
parentddfe25807ef90ddd3d10fd4532875ffdb5d5e9c5 (diff)
downloadInputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.tar
InputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.tar.gz
InputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.tar.bz2
InputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.tar.lz
InputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.tar.xz
InputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.tar.zst
InputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.zip
Moved file reading functionality into local functions
* it was moved into functions local to the respective compilation unit to improve readability ** splits DOM tree construction logic from the actual purpose of the external function
Diffstat (limited to 'src/function/read_file.cc')
-rw-r--r--src/function/read_file.cc24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/function/read_file.cc b/src/function/read_file.cc
index 83456c6..f531191 100644
--- a/src/function/read_file.cc
+++ b/src/function/read_file.cc
@@ -7,10 +7,21 @@
#include "boost/filesystem/fstream.hpp"
-#include <fstream>
-
#include "support/xerces_string_guard.h"
+namespace {
+
+inline std::string readFile(const boost::filesystem::path& filePath) {
+ boost::filesystem::ifstream file(filePath);
+
+ return std::string(
+ (std::istreambuf_iterator<char>(file)),
+ (std::istreambuf_iterator<char>())
+ );
+}
+
+}
+
namespace InputXSLT {
FunctionReadFile::FunctionReadFile(const FilesystemContext& context):
@@ -41,13 +52,6 @@ xalan::XObjectPtr FunctionReadFile::execute(
);
if ( boost::filesystem::is_regular_file(filePath) ) {
- boost::filesystem::ifstream file(filePath);
-
- const std::string fileContent(
- (std::istreambuf_iterator<char>(file)),
- (std::istreambuf_iterator<char>())
- );
-
xercesc::DOMElement* const resultNode(
domDocument->createElement(*XercesStringGuard("result"))
);
@@ -59,7 +63,7 @@ xalan::XObjectPtr FunctionReadFile::execute(
xercesc::DOMText* const resultTextNode(
domDocument->createTextNode(
- *XercesStringGuard(fileContent)
+ *XercesStringGuard(readFile(filePath))
)
);