]> git.tdb.fi Git - libs/net.git/blobdiff - source/http/header.h
Decorate things which constitute the public API
[libs/net.git] / source / http / header.h
index 202b844110b1044d360eec00baaa30d6db8f94ad..1beb95f01f5327ff6ed40a0dc2ffde5cda35279d 100644 (file)
@@ -4,14 +4,25 @@
 #include <map>
 #include <string>
 #include <vector>
+#include <msp/net/mspnet_api.h>
 
 namespace Msp {
 namespace Http {
 
 class Message;
 
-struct Header
+struct MSPNET_API Header
 {
+       enum Style
+       {
+               DEFAULT,
+               SINGLE_VALUE,
+               LIST,
+               KEY_VALUE_LIST,
+               VALUE_WITH_ATTRIBUTES,
+               LIST_WITH_ATTRIBUTES
+       };
+
        struct Value
        {
                std::string value;
@@ -19,12 +30,15 @@ struct Header
        };
 
        std::string name;
+       Style style;
        std::string raw_value;
        std::vector<Value> values;
 
-       Header() { }
-       Header(const Message &, const std::string &);
-       Header(const std::string &, const std::string &);
+       Header() = default;
+       Header(const Message &, const std::string &, Style = DEFAULT);
+       Header(const std::string &, const std::string &, Style = DEFAULT);
+
+       static Style get_default_style(const std::string &);
 
        void parse();
 };