#pragma once
#include "RawData.h"
#include "Socket.h"
#include "FileIncoming.h"
#include
namespace HttpServer
{
struct server_request
{
const System::native_socket_type socket;
const char *method;
const char *uri_reference;
const char *document_root;
const size_t params_count;
const Utils::raw_pair *params;
const size_t headers_count;
const Utils::raw_pair *headers;
const size_t data_count;
const Utils::raw_pair *data;
const size_t files_count;
const Utils::raw_fileinfo *files;
};
/**
* Структура запроса (входные данные)
*
* @member const Socket socket - сокет клиента
* @member const std::string method - метод применяемый к ресурсу
* @member const std::string uri_reference - ссылка на ресурс
* @member const std::string document_root - корневая директория приложения
* @member const std::unordered_multimap params - параметры ресурса
* @member const std::unordered_map headers - заголовки запроса
* @member const std::unordered_multimap data - входящие данные запроса
* @member const std::unordered_multimap files - входящие файлы запроса
* @member const std::unordered_multimap cookies - входящие куки запроса
*/
struct ServerRequest
{
const Socket socket;
const std::string method;
const std::string uri_reference;
const std::string document_root;
const std::unordered_multimap params;
const std::unordered_map headers;
const std::unordered_multimap data;
const std::unordered_multimap files;
const std::unordered_multimap cookies;
};
};