--- a/src/StreamRelationalReader.h Sat Aug 25 19:10:24 2018 +0200
+++ b/src/StreamRelationalReader.h Mon Aug 27 00:06:14 2018 +0200
@@ -29,6 +29,8 @@
types::IntegerDataTypeReader integerReader;
types::StringDataTypeReader stringReader;
std::vector<DataTypeReaderBase*> readers = {&booleanReader, &integerReader, &stringReader};
+ std::vector<handlers::RelationalReaderStringHadler*> stringHandlers;
+ std::vector<handlers::RelationalReaderValueHadler*> valueHandlers;
/**
* count of columns in the current table
@@ -55,6 +57,41 @@
throw RelpipeReaderException(L"Unsupported data type: " + static_cast<integer_t> (typeId));
}
+ void addHandler(handlers::RelationalReaderStringHadler* handler) override {
+ stringHandlers.push_back(handler);
+ }
+
+ void addHandler(handlers::RelationalReaderValueHadler* handler) override {
+ valueHandlers.push_back(handler);
+ }
+
+ void process() override {
+ for (int i = 0; i < stringHandlers.size(); i++) {
+ // FIXME: parse and call methods
+ stringHandlers[i]->startRelation(L"TODO: table",{
+ {L"a", TypeId::STRING},
+ {L"b", TypeId::STRING},
+ {L"c", TypeId::STRING}
+ });
+ }
+
+ for (int i = 0; i < valueHandlers.size(); i++) {
+ // FIXME: parse and call methods
+ valueHandlers[i]->startRelation(L"TODO: table value",{
+ {L"av", TypeId::STRING},
+ {L"bv", TypeId::STRING},
+ {L"cv", TypeId::STRING}
+ });
+ }
+
+ // FIXME: parse and call methods
+ for (int row = 0; row < 3; row++) {
+ for (int i = 0; i < stringHandlers.size(); i++) stringHandlers[i]->attribute(L"x");
+
+ }
+
+ }
+
};
}