88 Headers fDefaultResponseHeaders;
93 optional<Headers> fDefaultGETResponseHeaders;
98 optional<bool> fAutoComputeETagResponse;
103 optional<size_t> fAutomaticTransferChunkSize;
110 optional<Containers::Set<HTTP::ContentEncoding>> fSupportedCompressionEncodings;
118 [[deprecated (
"Since Stroika v3.0d7 - use the Options object with basically the same values")]]
explicit Connection (
120 const optional<Headers>& defaultGETResponseHeaders = nullopt,
const optional<bool> autoComputeETagResponse = nullopt);
177#if qStroika_Framework_WebServer_Connection_TrackExtraStats
180 optional<Traversal::Range<Time::TimePointSeconds>> fMostRecentMessage;
184 optional<thread::id> fHandlingThread;
204 enum ReadAndProcessResult {
226#if qStroika_Framework_WebServer_Connection_DetailedMessagingLog
228 nonvirtual
void WriteLogConnectionMsg_ (
const String& msg)
const;
240 const Headers& defaultResponseHeaders,
const optional<bool> autoComputeETagResponse);
246 enum ReadHeadersResult {
247 eIncompleteButMoreMayBeAvailable,
251 nonvirtual ReadHeadersResult ReadHeaders (
252#
if qStroika_Framework_WebServer_Connection_DetailedMessagingLog
253 const function<
void (
const String&)>& logMsg
259 const InterceptorChain fInterceptorChain_;
260 const Headers fDefaultResponseHeaders_;
261 const optional<Headers> fDefaultGETResponseHeaders_;
262 const optional<bool> fAutoComputeETagResponse_;
263 const optional<Containers::Set<HTTP::ContentEncoding>> fSupportedCompressionEncodings_;
267 unique_ptr<MyMessage_> fMessage_;
268 optional<HTTP::KeepAlive> fRemaining_;
269#if qStroika_Framework_WebServer_Connection_TrackExtraStats
271 static constexpr double kAtomicTimeSentinel_ = -1;
272 atomic<double> fStartHandleMessage_{kAtomicTimeSentinel_};
273 atomic<double> fCompletedHandleMessage_{kAtomicTimeSentinel_};
274 atomic<thread::id> fHandlingThread_;
276#if qStroika_Framework_WebServer_Connection_DetailedMessagingLog