90 Headers fDefaultResponseHeaders;
95 optional<Headers> fDefaultGETResponseHeaders;
100 optional<bool> fAutoComputeETagResponse;
105 optional<size_t> fAutomaticTransferChunkSize;
112 optional<Containers::Set<HTTP::ContentEncoding>> fSupportedCompressionEncodings;
120 [[deprecated (
"Since Stroika v3.0d7 - use the Options object with basically the same values")]]
explicit Connection (
122 const optional<Headers>& defaultGETResponseHeaders = nullopt,
const optional<bool> autoComputeETagResponse = nullopt);
179#if qStroika_Framework_WebServer_Connection_TrackExtraStats
182 optional<Traversal::Range<TimePointSeconds>> fMostRecentMessage;
186 optional<thread::id> fHandlingThread;
221 enum ReadAndProcessResult {
243#if qStroika_Framework_WebServer_Connection_DetailedMessagingLog
245 nonvirtual
void WriteLogConnectionMsg_ (
const String& msg)
const;
257 const Headers& defaultResponseHeaders,
const optional<bool> autoComputeETagResponse);
263 enum ReadHeadersResult {
264 eIncompleteButMoreMayBeAvailable,
268 nonvirtual ReadHeadersResult ReadHeaders (
269#
if qStroika_Framework_WebServer_Connection_DetailedMessagingLog
270 const function<
void (
const String&)>& logMsg
276 const InterceptorChain fInterceptorChain_;
277 const Headers fDefaultResponseHeaders_;
278 const optional<Headers> fDefaultGETResponseHeaders_;
279 const optional<bool> fAutoComputeETagResponse_;
280 const optional<Containers::Set<HTTP::ContentEncoding>> fSupportedCompressionEncodings_;
283 const TimePointSeconds fConnectionStartedAt_{};
284 unique_ptr<MyMessage_> fMessage_;
285 optional<HTTP::KeepAlive> fRemaining_;
286#if qStroika_Framework_WebServer_Connection_TrackExtraStats
287 struct Stats2Capture_ {
288 optional<TimePointSeconds> fMessageStart;
289 optional<TimePointSeconds> fMessageCompleted;
290 optional<SocketAddress> fPeer;
291 optional<String> fWebMethod;
292 optional<URI> fRequestURI;
293 thread::id fHandlingThread;
295 static_assert (is_default_constructible_v<Stats2Capture_>);
298#if qStroika_Framework_WebServer_Connection_DetailedMessagingLog