]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - src/adaptation/icap/ModXact.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / adaptation / icap / ModXact.h
index 61bf8130af5899bd6d0404c8ef2d8f514e41e930..4694d64a94a8ea5122fed3f297ce18a629e0c51d 100644 (file)
@@ -49,7 +49,6 @@
  * receive the HTTP body.
  */
 
-
 class ChunkedCodingParser;
 
 namespace Adaptation
@@ -106,7 +105,6 @@ private:
     State theState;
 };
 
-
 // maintains preview-related sizes
 
 class Preview
@@ -137,6 +135,7 @@ class ModXact: public Xaction, public BodyProducer, public BodyConsumer
 
 public:
     ModXact(HttpMsg *virginHeader, HttpRequest *virginCause, ServiceRep::Pointer &s);
+    virtual ~ModXact();
 
     // BodyProducer methods
     virtual void noteMoreBodySpaceAvailable(BodyPipe::Pointer);
@@ -156,6 +155,7 @@ public:
 
     // service waiting
     void noteServiceReady();
+    void noteServiceAvailable();
 
 public:
     InOut virgin;
@@ -164,6 +164,11 @@ public:
     // bypasses exceptions if needed and possible
     virtual void callException(const std::exception &e);
 
+    /// record error detail in the virgin request if possible
+    virtual void detailError(int errDetail);
+    // Icap::Xaction API
+    virtual void clearError();
+
 private:
     virtual void start();
 
@@ -183,6 +188,7 @@ private:
     void writePreviewBody();
     void writePrimeBody();
     void writeSomeBody(const char *label, size_t size);
+    void decideWritingAfterPreview(const char *previewKind);
 
     void startReading();
     void readMore();
@@ -298,6 +304,7 @@ private:
         bool allowedPostview206; // must handle 206 Partial Content outside preview
         bool allowedPreview206; // must handle 206 Partial Content inside preview
         bool readyForUob; ///< got a 206 response and expect a use-origin-body
+        bool waitedForService; ///< true if was queued at least once
 
         // will not write anything [else] to the ICAP server connection
         bool doneWriting() const { return writing == writingReallyDone; }
@@ -356,7 +363,6 @@ private:
     CBDATA_CLASS2(ModXactLauncher);
 };
 
-
 } // namespace Icap
 } // namespace Adaptation