Skip to content

Commit

Permalink
クラスの変更完了
Browse files Browse the repository at this point in the history
  • Loading branch information
molhot committed Aug 31, 2023
1 parent 53a11ef commit 6aafeef
Show file tree
Hide file tree
Showing 10 changed files with 283 additions and 210 deletions.
16 changes: 16 additions & 0 deletions srcs/includes/BaseKeyValueMap.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#ifndef BASEKEYVALUEMAP_HPP
#define BASEKEYVALUEMAP_HPP

#include <map>
#include <string>

class BaseKeyValueMap
{
private:
BaseKeyValueMap(const KeyValueMap &other);

public:
virtual ~BaseKeyValueMap();
};

#endif
290 changes: 107 additions & 183 deletions srcs/includes/HttpRequest.hpp

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions srcs/includes/RequestLine.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ class RequestLine
std::string get_method(void) const;
std::string get_target_page(void) const;
std::string get_version(void) const;

void show_requestline(void) const;
};

#endif
16 changes: 10 additions & 6 deletions srcs/includes/TwoValueSet.hpp
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
#ifndef TWOVALUESET_HPP
#define TWOVALUESET_HPP

class TwoValueSet
#include <string>
#include <iostream>
#include "BaseKeyValueMap.hpp"

class TwoValueSet: public KeyValueMap
{
private:
std::string _firstvalue;
std::string _secondValue;

TwoValueSet(const TwoValueSet &other);
TwoValueSet();
TwoValueSet& operator=(const TwoValueSet &other);

public:
TwoValueSet();
TwoValueSet(std::string const &first_value);
TwoValueSet(const std::string &first_value, const std::string &second_value);
~TwoValueSet();

void set_values(const std::string &first_value, const std::string &second_value);
void set_values(const std::string &first_value);

std::string get_firstvalue(void) const;
std::string get_secondvalue(void) const;

void show_allvalue(void) const;
};

#endif
8 changes: 5 additions & 3 deletions srcs/includes/ValueArraySet.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,24 @@

#include <string>
#include <vector>
#include <iostream>

class ValueArraySet
class ValueArraySet: public KeyValueMap
{
private:
std::vector<std::string> _value_array;

ValueArraySet();
ValueArraySet(const ValueArraySet &other);
ValueArraySet &operator=(const ValueArraySet &other);

public:
ValueArraySet();
ValueArraySet(const std::vector<std::string> value_array);
~ValueArraySet();

std::vector<std::string> get_value_array(void) const;

void set_value_array(const std::vector<std::string> &value);
void show_value_array_set(void);
};

#endif
16 changes: 12 additions & 4 deletions srcs/includes/ValueDateSet.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,32 @@

#include <string>

class ValueDateSet
class ValueDateSet: public KeyValueMap
{
private:
std::string _day_name;
std::string _day;
std::string _month;
std::string _year;
std::string _hour;
std::string _hour;
std::string _minute;
std::string _second;

ValueDateSet();
ValueDateSet(const ValueDateSet &other);
ValueDateSet& operator=(const ValueDateSet &other);

public:
ValueDateSet();
ValueDateSet(const std::string &value);
ValueDateSet(const std::string &date_format);
~ValueDateSet();

std::string get_valuedateset_day_name();
std::string get_valuedateset_day();
std::string get_valuedateset_month();
std::string get_valuedateset_year();
std::string get_valuedateset_hour();
std::string get_valuedateset_minute();
std::string get_valuedateset_second();
};

#endif
121 changes: 121 additions & 0 deletions srcs/includes/ValueInsertMethod.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
//テンプレートを使用するため、セッターを中に入れたままだとめっちゃめんどくさくなってしまう
//セッター部分を完全に切り分けて、staticクラスとして実装したい
//要相談

#ifndef VALUEINSERTMETHOD_HPP
#define VALUEINSERTMETHOD_HPP

#include <string>
#include <iostream>

#include "ValueArraySet.hpp"
#include "ValueDateSet.hpp"
#include "ValueWeightArraySet.hpp"
#include "ValueMap.hpp"
#include "ValueInsertMethod.hpp"

class RequestLine;
class ValueWeightArraySet;
class ValueArraySet;
class ValueSet;
class TwoValueSet;
class ValueMap;
class ValueDateSet;

class ValueInsertMethod
{
private:

public:
ValueWeightArraySet ready_accept(const std::string &value);
// void set_accept_ch(const std::string &value);//ハイフンは_にしちゃいたいかも
// //初期化に引数を必ず取りたいため、引数なしのコンストラクタは許可したくなく、privateに避難しているがこれだとダメっぽい?ちゃうんかい
// void set_accept_charset(const std::string &value);
// void set_accept_encoding(const std::string &value);
// void set_accept_language(const std::string &value);
// //Accept-Patchどういう持ち方かわからん
// void set_accept_post(const std::string &value);
// void set_accept_ranges(const std::string &value);
// void set_access_control_allow_credentials(const std::string &value);
// void set_access_control_allow_headers(const std::string &value);
// void set_access_control_allow_methods(const std::string &value);
// void set_access_control_allow_origin(const std::string &value);
// void set_access_control_expose_headers(const std::string &value);
// void set_access_control_max_age(const std::string &value);
// void set_access_control_request_headers(const std::string &value);
// void set_access_control_request_method(const std::string &value);
// void set_age(const std::string &value);
// void set_allow(const std::string &value);
// void set_alt_svc(const std::string &value);
// void set_alt_used(const std::string &value);
// void set_authorization(const std::string &value);
// //Cache-Controlどう使うのか全くわからない
// void set_clear_site_data(const std::string &value);
// void set_connection(const std::string &value);
// void set_content_disponesition(const std::string &value);
// void set_content_encoding(const std::string &value);
// void set_content_language(const std::string &value);
// void set_content_length(const std::string &value);
// void set_content_location(const std::string &value);
// void set_content_range(const std::string &value);
// void set_content_security_policy(const std::string &value);
// void set_content_security_policy_report_only(const std::string &value);
// void set_content_type(const std::string &value);
// void set_cookie(const std::string &value);
// void set_cross_origin_embedder_policy(const std::string &value);
// void set_cross_origin_opener_policy(const std::string &value);
// void set_cross_origin_resource_policy(const std::string &value);
// void set_date(const std::string &value);
// void set_etag(const std::string &value);
// void set_expect(const std::string &value);
// //expect-ctは現状廃止されているっぽくて対応したくない
// void set_expires(const std::string &value);
// void set_forwarded(const std::string &value);
// void set_email(const std::string &value);
// void set_from(const std::string &value);
// void set_host(const std::string &value);
// void set_if_match(const std::string &value);
// void set_if_modified_since(const std::string &value);
// void set_if_none_match(const std::string &value);
// void set_if_range(const std::string &value);
// void set_if_unmodified_since(const std::string &value);
// void set_keepalive(const std::string &value);
// void set_last_modified(const std::string &value);
// void set_link(const std::string &value);
// void set_location(const std::string &value);
// void set_max_forwards(const std::string &value);
// void set_origin(const std::string &value);
// void set_permission_policy(const std::string &value);
// void set_proxy_authenticate(const std::string &value);
// void set_proxy_authorization(const std::string &value);
// //range何かよくわからん
// void set_referer(const std::string &value);
// void set_referrer_policy(const std::string &value);
// void set_retry_after(const std::string &value);
// void set_sec_fetch_dest(const std::string &value);
// void set_sec_fetch_mode(const std::string &value);
// void set_sec_fetch_site(const std::string &value);
// void set_sec_fetch_user(const std::string &value);
// void set_sec_purpose(const std::string &value);
// void set_sec_websocket_accept(const std::string &value);
// void set_server(const std::string &value);
// void set_servertiming(const std::string &value);
// void set_service_worker_navigation_preload(const std::string &value);
// void set_set_cookie(const std::string &value);
// void set_sourcemap(const std::string &value);
// void set_strict_transport_security(const std::string &value);
// void set_te(const std::string &value);

// void set_timing_allow_origin(const std::string &value);
// void set_trailer(const std::string &value);
// void set_transfer_encoding(const std::string &value);
// void set_upgrade(const std::string &value);
// void set_upgrade_insecure_requests(const std::string &value);
// void set_user_agent(const std::string &value);
// void set_vary(const std::string &value);
// void set_via(const std::string &value);
// void set_www_authenticate(const std::string &value);
// void set_x_xss_protection(const std::string &value);
};

#endif
5 changes: 3 additions & 2 deletions srcs/includes/ValueMap.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,17 @@
#include <string>
#include <map>

class ValueMap
class ValueMap: public KeyValueMap
{
private:
std::string _only_value;
std::map<std::string, std::string> _value_map;
ValueMap();
ValueMap(const ValueMap &other);
ValueMap& operator=(const ValueMap &other);

public:
ValueMap();
ValueMap(std::map<std::string, std::string> value_map);
~ValueMap();

void set_value(const std::string &only_value, const std::map<std::string, std::string> &value_map);
Expand Down
10 changes: 4 additions & 6 deletions srcs/includes/ValueSet.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,18 @@
#include <vector>
#include <string>

class ValueSet
class ValueSet: public KeyValueMap
{
private:
std::string _value;

ValueSet(const ValueSet &other);
ValueSet &operator=(const ValueSet &other);
ValueSet();
//ValueSet &operator=(const ValueSet &other);

public:
ValueSet();
ValueSet(const std::string &value);
~ValueSet();

void set_value(const std::string &value);

std::string get_value_set(void) const;
};

Expand Down
9 changes: 3 additions & 6 deletions srcs/includes/ValueWeightArraySet.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,19 @@
#include <map>
#include "HandlingString.hpp"

class ValueWeightArraySet
class ValueWeightArraySet: public KeyValueMap
{
private:
std::map<std::string, double> _valueweight_set;//map型で入れるが、どうせなら重みを加味したようなインプットの流れにしておけば取り出す時に非常に楽になるのでは?

ValueWeightArraySet(const ValueWeightArraySet &other);
ValueWeightArraySet();
ValueWeightArraySet &operator=(const ValueWeightArraySet &other);

public:
ValueWeightArraySet();
ValueWeightArraySet(std::map<std::string, double> &valueweight_set);
~ValueWeightArraySet();

std::map<std::string, double> get_valueweight_set(void) const;

void append_valueweight_set(const std::string &value, double weight);
void append_valueweight_set(const std::string &value);
};

#endif

0 comments on commit 6aafeef

Please sign in to comment.