:sig
Request* context;
//
struct Request {

	ServerState* server;

	StringMap params;
	StringMap get;
	StringMap post;
	StringMap cookies;
	StringMap session;

	DTree var;

	String session_id = "";
	String session_name = "";
	std::vector<UploadedFile> uploaded_files;

	StringMap header;
	StringList set_cookies;

	u64 random_seed;
	u64 random_index;

	MemoryArena* mem;

	String in;
	std::vector<std::ostringstream*> ob_stack;
	std::ostringstream* ob;
	String out;
	String err;

	bool is_finished = false;

	struct Flags {
		bool log_request = true;
	} flags;

	struct Stats {
		u32 bytes_written;
		f64 time_init;
		f64 time_start;
		f64 time_end;
	} stats;

	void invoke(String file_name);
	void invoke(String file_name, DTree& call_param);

	void ob_start();

};

:desc



