「🏗️」 wip: started ex00
This commit is contained in:
101
ex00/BitcoinExchange.hpp
Normal file
101
ex00/BitcoinExchange.hpp
Normal file
@ -0,0 +1,101 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* BitcoinExchange.hpp :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/05/21 10:38:49 by adjoly #+# #+# */
|
||||
/* Updated: 2025/05/30 20:31:26 by adjoly ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <map>
|
||||
#include <string>
|
||||
|
||||
#define range(x) \
|
||||
x.begin(); \
|
||||
it != x.end(); \
|
||||
it++
|
||||
|
||||
#define auto __auto_type
|
||||
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned short uint16_t;
|
||||
|
||||
struct token {};
|
||||
|
||||
void _log(std::string emoji, std::string what, std::string who,
|
||||
std::string str);
|
||||
|
||||
class Date {
|
||||
public:
|
||||
Date(void);
|
||||
Date(std::string);
|
||||
Date(const Date &);
|
||||
~Date(void);
|
||||
|
||||
Date &operator=(const Date &);
|
||||
|
||||
uint32_t getYear(void) const;
|
||||
uint16_t getMonth(void) const;
|
||||
uint16_t getDay(void) const;
|
||||
|
||||
bool operator==(const Date &) const;
|
||||
bool operator!=(const Date &) const;
|
||||
|
||||
bool operator<(const Date &) const;
|
||||
bool operator>(const Date &) const;
|
||||
|
||||
bool operator<=(const Date &) const;
|
||||
bool operator>=(const Date &) const;
|
||||
|
||||
protected:
|
||||
private:
|
||||
static const uint32_t _d_in_m[12];
|
||||
|
||||
bool _isMonthValid(uint16_t) const;
|
||||
bool _isDayValid(uint16_t, uint16_t) const;
|
||||
|
||||
uint32_t _year;
|
||||
uint16_t _month;
|
||||
uint16_t _day;
|
||||
};
|
||||
|
||||
std::ostream &operator<<(std::ostream &, const Date &);
|
||||
|
||||
class CsvParser {
|
||||
public:
|
||||
CsvParser(void);
|
||||
CsvParser(const CsvParser &);
|
||||
~CsvParser(void);
|
||||
|
||||
CsvParser &operator=(const CsvParser &);
|
||||
|
||||
std::map<Date, float> getCsv(void) const;
|
||||
|
||||
protected:
|
||||
private:
|
||||
std::ifstream _is;
|
||||
std::string _filename;
|
||||
|
||||
std::map<Date, float> _csv;
|
||||
};
|
||||
|
||||
class BitcoinExchange {
|
||||
public:
|
||||
BitcoinExchange(void);
|
||||
BitcoinExchange(const BitcoinExchange &);
|
||||
~BitcoinExchange(void);
|
||||
|
||||
BitcoinExchange &operator=(const BitcoinExchange &);
|
||||
|
||||
protected:
|
||||
private:
|
||||
void _nextToken(void);
|
||||
std::string _peekToken(void) const;
|
||||
};
|
Reference in New Issue
Block a user