Joel Grunbaum
2022-01-09 6926be56fe58e199673db158c4fee7ca7b140c8d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include "book.hpp"
#include "json.hpp"
#include "protocol.hpp"
 
#include <cstdlib>
#include <getopt.h>
#include <iostream>
#include <unordered_map>
 
enum clickType { Buy, Sell, Flash };
 
static std::unordered_map<std::string, clickType> mapClick;
 
void initialise()
{
    mapClick = {{"BUY", Buy}, {"SELL", Sell}, {"FLASH", Flash},
                {"b", Buy},   {"s", Sell},    {"f", Flash},
                {"B", Buy},   {"S", Sell},    {"F", Flash}};
}
 
void usage()
{
    std::cout << "DESCRIPTION" << std::endl
          << "Click trader using same algs" << std::endl
          << std::endl
          << "USAGE" << std::endl
          << "\t-a product" << std::endl
          << "\t-t click type (buy, sell, flash)" << std::endl
          << "\t-p price" << std::endl
          << "\t-v volume" << std::endl
          << "\t-i id" << std::endl
          << "Always need product, need side, price and volume for "
         "adding/flash, need id for deleting"
          << std::endl;
}
 
int main(int argc, char** argv)
{
    int c;
    std::string product, id;
    double price;
    clickType click;
    uint64_t volume;
    initialise();
    if (argc == 1) {
    usage(), exit(0);
    }
    while ((c = getopt(argc, argv, "a::t::p::v::i::")) != -1) {
    switch (c) {
    case 'a':
        product = std::string(optarg);
        break;
    case 's':
        click = mapClick[optarg];
        break;
    case 'p':
        price = std::stod(optarg);
        break;
    case 'v':
        volume = std::stoll(optarg);
        break;
    case 'i':
        id = std::string(optarg);
        break;
    case '?':
    default:
        usage();
        exit(0);
    }
    }
    switch (click) {
    case Buy:
    case Sell:
    case Flash:;
    }
}