]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - src/adaptation/icap/ServiceRep.h
Source Format Enforcement (#1234)
[thirdparty/squid.git] / src / adaptation / icap / ServiceRep.h
index d08737cf6d501a0b8ef223de64dac1205ab3cc67..01077009dd3d74cfd7506cd7c2f801b8622a08a0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
  *
  * Squid software is distributed under GPLv2+ license and includes
  * contributions from numerous individuals and organizations.
@@ -59,56 +59,57 @@ class OptXact;
 class ServiceRep : public RefCountable, public Adaptation::Service,
     public Adaptation::Initiator
 {
-    CBDATA_CLASS(ServiceRep);
+    CBDATA_CHILD(ServiceRep);
 
 public:
     typedef RefCount<ServiceRep> Pointer;
 
 public:
     explicit ServiceRep(const ServiceConfigPointer &aConfig);
-    virtual ~ServiceRep();
+    ~ServiceRep() override;
 
-    virtual void finalize();
+    void finalize() override;
 
-    virtual bool probed() const; // see comments above
-    virtual bool up() const; // see comments above
+    bool probed() const override; // see comments above
+    bool up() const override; // see comments above
     bool availableForNew() const; ///< a new transaction may start communicating with the service
     bool availableForOld() const; ///< a transaction notified about connection slot availability may start communicating with the service
 
-    virtual Initiate *makeXactLauncher(HttpMsg *virginHeader, HttpRequest *virginCause, AccessLogEntry::Pointer &alp);
+    Initiate *makeXactLauncher(Http::Message *virginHeader, HttpRequest *virginCause, AccessLogEntry::Pointer &alp) override;
 
     void callWhenAvailable(AsyncCall::Pointer &cb, bool priority = false);
     void callWhenReady(AsyncCall::Pointer &cb);
 
     // the methods below can only be called on an up() service
-    bool wantsUrl(const SBuf &urlPath) const;
+    bool wantsUrl(const SBuf &urlPath) const override;
     bool wantsPreview(const SBuf &urlPath, size_t &wantedSize) const;
     bool allows204() const;
     bool allows206() const;
-    Comm::ConnectionPointer getConnection(bool isRetriable, bool &isReused);
+    /// \returns an idle persistent ICAP connection or nil
+    Comm::ConnectionPointer getIdleConnection(bool isRetriable);
     void putConnection(const Comm::ConnectionPointer &conn, bool isReusable, bool sendReset, const char *comment);
     void noteConnectionUse(const Comm::ConnectionPointer &conn);
     void noteConnectionFailed(const char *comment);
 
-    void noteFailure(); // called by transactions to report service failure
+    void noteFailure() override; // called by transactions to report service failure
 
     void noteNewWaiter() {theAllWaiters++;} ///< New xaction waiting for service to be up or available
     void noteGoneWaiter(); ///< An xaction is not waiting any more for service to be available
     bool existWaiters() const {return (theAllWaiters > 0);} ///< if there are xactions waiting for the service to be available
 
     //AsyncJob virtual methods
-    virtual bool doneAll() const { return Adaptation::Initiator::doneAll() && false;}
-    virtual void callException(const std::exception &e);
+    bool doneAll() const override { return Adaptation::Initiator::doneAll() && false;}
+    void callException(const std::exception &e) override;
 
-    virtual void detach();
-    virtual bool detached() const;
+    void detach() override;
+    bool detached() const override;
 
 public: // treat these as private, they are for callbacks only
     void noteTimeToUpdate();
     void noteTimeToNotify();
 
     // receive either an ICAP OPTIONS response header or an abort message
-    virtual void noteAdaptationAnswer(const Answer &answer);
+    void noteAdaptationAnswer(const Answer &answer) override;
 
     Security::ContextPointer sslContext;
     Security::SessionStatePointer sslSession;
@@ -182,7 +183,7 @@ private:
      */
     void busyCheckpoint();
 
-    const char *status() const;
+    const char *status() const override;
 
     mutable bool wasAnnouncedUp; // prevent sequential same-state announcements
     bool isDetached;
@@ -198,7 +199,7 @@ public:
     ServiceRep::Pointer theService;
     ConnWaiterDialer(const CbcPointer<Adaptation::Icap::ModXact> &xact, Adaptation::Icap::ConnWaiterDialer::Parent::Method aHandler);
     ConnWaiterDialer(const Adaptation::Icap::ConnWaiterDialer &aConnWaiter);
-    ~ConnWaiterDialer();
+    ~ConnWaiterDialer() override;
 };
 
 } // namespace Icap