Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_network.h"
00035 #include "../../Core/System/sharedptr.h"
00036 #include "../../Core/IOData/iodevice.h"
00037
00038 class CL_DataBuffer;
00039 class CL_HTTPServerConnection_Impl;
00040
00044 class CL_API_NETWORK CL_HTTPServerConnection : public CL_IODevice
00045 {
00048
00049 public:
00051 CL_HTTPServerConnection();
00052
00056 CL_HTTPServerConnection(const CL_SharedPtr<CL_HTTPServerConnection_Impl> &impl);
00057
00058 ~CL_HTTPServerConnection();
00059
00063
00064 public:
00066 bool is_null() const { return !impl; }
00067
00069 void throw_if_null() const;
00070
00074 CL_StringRef8 get_request_type();
00075
00079 CL_StringRef8 get_request_url();
00080
00084 CL_StringRef8 get_request_headers();
00085
00089
00090 public:
00091
00095 CL_DataBuffer read_request_data();
00096
00101 void write_response_status(int status_code, const CL_StringRef8 &status_text = CL_StringRef8());
00102
00106 void write_response_headers(const CL_StringRef8 &headers);
00107
00111 void write_response_data(const CL_DataBuffer &data);
00112
00116
00117 private:
00118 CL_SharedPtr<CL_HTTPServerConnection_Impl> impl;
00120 };
00121