relpipe-out-tabular.cpp
branchv_0
changeset 5 911ec74cce33
parent 3 9a4062b12fc9
child 9 86d69cfbacc9
equal deleted inserted replaced
4:d13b0b5969aa 5:911ec74cce33
     5 #include <relpipe/cli/RelpipeCLIException.h>
     5 #include <relpipe/cli/RelpipeCLIException.h>
     6 #include <relpipe/reader/Factory.h>
     6 #include <relpipe/reader/Factory.h>
     7 #include <relpipe/reader/RelationalReader.h>
     7 #include <relpipe/reader/RelationalReader.h>
     8 #include <relpipe/reader/RelpipeReaderException.h>
     8 #include <relpipe/reader/RelpipeReaderException.h>
     9 
     9 
       
    10 #include "src/TabularPrefetchingHandler.h"
    10 
    11 
    11 using namespace relpipe::cli;
    12 using namespace relpipe::cli;
    12 using namespace relpipe::reader;
    13 using namespace relpipe::reader;
    13 
    14 using namespace relpipe::out::tabular;
    14 class DemoHandler : public handlers::RelationalReaderStringHadler {
       
    15 
       
    16 	void startRelation(string_t name, std::vector<std::pair<string_t, TypeId> > attributes) override {
       
    17 		std::wcout << L"start relation: " << name << std::endl << std::flush;
       
    18 		for (int i = 0; i < attributes.size(); i++) {
       
    19 			std::wcout << L"\tcolumn: " << attributes[i].first << L" / " << (int) attributes[i].second << std::endl << std::flush;
       
    20 		}
       
    21 	}
       
    22 
       
    23 	void attribute(const string_t& value) override {
       
    24 		std::wcout << L"attribute: " << value << std::endl << std::flush;
       
    25 	}
       
    26 
       
    27 
       
    28 };
       
    29 
    15 
    30 int main(int argc, char** argv) {
    16 int main(int argc, char** argv) {
    31 	CLI cli(argc, argv);
    17 	CLI cli(argc, argv);
    32 
    18 
    33 	int resultCode = CLI::EXIT_CODE_UNEXPECTED_ERROR;
    19 	int resultCode = CLI::EXIT_CODE_UNEXPECTED_ERROR;
    40 		// for (int i = 1; i < cli.arguments().size(); i++) {
    26 		// for (int i = 1; i < cli.arguments().size(); i++) {
    41 		//	arguments[i - 1] = cli.arguments()[i];
    27 		//	arguments[i - 1] = cli.arguments()[i];
    42 		// }
    28 		// }
    43 
    29 
    44 		std::shared_ptr<RelationalReader> reader(Factory::create(std::cin));
    30 		std::shared_ptr<RelationalReader> reader(Factory::create(std::cin));
    45 		DemoHandler handler;
    31 		TabularPrefetchingHandler handler(std::cout);
    46 		reader->addHandler(&handler);
    32 		reader->addHandler(&handler);
    47 		reader->process();
    33 		reader->process();
    48 
    34 
    49 		resultCode = CLI::EXIT_CODE_SUCCESS;
    35 		resultCode = CLI::EXIT_CODE_SUCCESS;
    50 
    36