--- a/src/GuileHandler.h Sun Feb 03 01:44:07 2019 +0100
+++ b/src/GuileHandler.h Sun Feb 03 12:35:17 2019 +0100
@@ -54,7 +54,7 @@
std::wstring_convert<codecvt_utf8<wchar_t>> convertor; // TODO: support also other encodings or use always UTF-8 between C++ and Guile
Configuration configuration;
- shared_ptr<writer::RelationalWriter> relationalWriter;
+ writer::RelationalWriter* relationalWriter;
wregex relationNameRegEx;
@@ -146,8 +146,7 @@
public:
- GuileHandler(ostream& output, Configuration& configuration, const vector<string_t>& arguments) : configuration(configuration) {
- relationalWriter.reset(writer::Factory::create(output));
+ GuileHandler(writer::RelationalWriter* relationalWriter, Configuration& configuration, const vector<string_t>& arguments) : relationalWriter(relationalWriter), configuration(configuration) {
// FIXME: remove and work directly with configuration in startRelation() and attribute()
// i.e. support multiple relationConfigurations
@@ -182,6 +181,7 @@
currentAttributeIndex++;
+ // TODO: > 0 ?:
if (currentAttributeIndex > 0 && currentAttributeIndex % currentReaderMetadata.size() == 0) {
includeCurrentRecord = scm_to_bool(evalGuileCode(guileCodeWhereCondition));
if (includeCurrentRecord) for (auto attribute : currentWriterMetadata) writeGuileValueToAttribute(attribute);