DemoCommand.h
author František Kučera <franta-hg@frantovo.cz>
Sat, 28 Jul 2018 14:16:44 +0200
branchv_0
changeset 12 bc6fe00dd831
parent 11 relpipe-in-cli.cpp@3798b6bc9aea
child 20 a18b6964d300
permissions -rw-r--r--
move demo code to DemoCommand.h
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
     1
#pragma once
0
3dd6adb7e191 empty project
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
     2
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
     3
#include <cstdlib>
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
     4
#include <iostream>
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
     5
#include <string>
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
     6
#include <vector>
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
     7
#include <algorithm>
10
77593735b057 CLI infrastructure ported from the prototype
František Kučera <franta-hg@frantovo.cz>
parents: 9
diff changeset
     8
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
     9
#include <typedefs.h>
10
77593735b057 CLI infrastructure ported from the prototype
František Kučera <franta-hg@frantovo.cz>
parents: 9
diff changeset
    10
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    11
#include "Command.h"
10
77593735b057 CLI infrastructure ported from the prototype
František Kučera <franta-hg@frantovo.cz>
parents: 9
diff changeset
    12
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    13
namespace relpipe {
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    14
namespace in {
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    15
namespace cli {
10
77593735b057 CLI infrastructure ported from the prototype
František Kučera <franta-hg@frantovo.cz>
parents: 9
diff changeset
    16
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    17
class DemoCommand : public Command {
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    18
public:
10
77593735b057 CLI infrastructure ported from the prototype
František Kučera <franta-hg@frantovo.cz>
parents: 9
diff changeset
    19
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    20
	void process(std::istream& input, std::ostream& output, const relpipe::writer::string_t& command, const std::vector<relpipe::writer::string_t>& arguments) override {
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    21
		using namespace relpipe::writer;
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    22
		std::shared_ptr<RelationalWriter> writer(Factory::create(output));
10
77593735b057 CLI infrastructure ported from the prototype
František Kučera <franta-hg@frantovo.cz>
parents: 9
diff changeset
    23
77593735b057 CLI infrastructure ported from the prototype
František Kučera <franta-hg@frantovo.cz>
parents: 9
diff changeset
    24
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    25
		// Various data types passed as strings
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    26
		writer->startRelation(L"table_from_strings",{
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    27
			{L"s", TypeId::STRING},
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    28
			{L"i", TypeId::INTEGER},
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    29
			{L"b", TypeId::BOOLEAN}
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    30
		}, true);
10
77593735b057 CLI infrastructure ported from the prototype
František Kučera <franta-hg@frantovo.cz>
parents: 9
diff changeset
    31
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    32
		writer->writeAttribute(L"a");
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    33
		writer->writeAttribute(L"1");
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    34
		writer->writeAttribute(L"true");
10
77593735b057 CLI infrastructure ported from the prototype
František Kučera <franta-hg@frantovo.cz>
parents: 9
diff changeset
    35
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    36
		writer->writeAttribute(L"b");
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    37
		writer->writeAttribute(L"2");
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    38
		writer->writeAttribute(L"false");
0
3dd6adb7e191 empty project
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    39
7
9ac885dd8037 writeAttribute() with raw pointer and type_info
František Kučera <franta-hg@frantovo.cz>
parents: 6
diff changeset
    40
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    41
		// Various data types passed as raw pointers + typeids
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    42
		writer->startRelation(L"from_raw_pointers",{
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    43
			{L"s", TypeId::STRING},
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    44
			{L"i", TypeId::INTEGER},
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    45
			{L"b", TypeId::BOOLEAN}
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    46
		}, true);
4
e615c7d87279 multiple relations, various data types
František Kučera <franta-hg@frantovo.cz>
parents: 3
diff changeset
    47
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    48
		string_t sValue;
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    49
		integer_t iValue;
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    50
		boolean_t bValue;
7
9ac885dd8037 writeAttribute() with raw pointer and type_info
František Kučera <franta-hg@frantovo.cz>
parents: 6
diff changeset
    51
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    52
		for (int i = 0; i < 8; i++) {
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    53
			sValue.append(L"*");
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    54
			iValue = i + 1;
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    55
			bValue = iValue % 2 == 0;
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    56
			writer->writeAttribute(&sValue, typeid (sValue));
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    57
			writer->writeAttribute(&iValue, typeid (iValue));
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    58
			writer->writeAttribute(&bValue, typeid (bValue));
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    59
		}
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    60
	}
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    61
};
8
c1472544d95a replace writeRecord() with sequence of writeAttribute()
František Kučera <franta-hg@frantovo.cz>
parents: 7
diff changeset
    62
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    63
}
0
3dd6adb7e191 empty project
František Kučera <franta-hg@frantovo.cz>
parents:
diff changeset
    64
}
12
bc6fe00dd831 move demo code to DemoCommand.h
František Kučera <franta-hg@frantovo.cz>
parents: 11
diff changeset
    65
}