diff -r 4062b8436838 -r 61fc569b77e6 src/GuileHandler.h --- 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> convertor; // TODO: support also other encodings or use always UTF-8 between C++ and Guile Configuration configuration; - shared_ptr relationalWriter; + writer::RelationalWriter* relationalWriter; wregex relationNameRegEx; @@ -146,8 +146,7 @@ public: - GuileHandler(ostream& output, Configuration& configuration, const vector& arguments) : configuration(configuration) { - relationalWriter.reset(writer::Factory::create(output)); + GuileHandler(writer::RelationalWriter* relationalWriter, Configuration& configuration, const vector& 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);