+/*
+ * 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.
+ * Please see the COPYING and CONTRIBUTORS files for details.
+ */
+
#ifndef SQUID_ADAPTATION__SERVICE_H
#define SQUID_ADAPTATION__SERVICE_H
-#include "SquidString.h"
-#include "RefCount.h"
-#include "adaptation/forward.h"
+#include "AccessLogEntry.h"
#include "adaptation/Elements.h"
+#include "adaptation/forward.h"
#include "adaptation/ServiceConfig.h"
+#include "base/RefCount.h"
+#include "http/forward.h"
+#include "SquidString.h"
// TODO: Move src/ICAP/ICAPServiceRep.h API comments here and update them
-class HttpMsg;
-class HttpRequest;
-
namespace Adaptation
{
public:
explicit Service(const ServiceConfigPointer &aConfig);
- virtual ~Service();
+ ~Service() override;
virtual bool probed() const = 0; // see comments above
virtual bool broken() const;
virtual bool up() const = 0; // see comments above
- virtual Initiate *makeXactLauncher(HttpMsg *virginHeader, HttpRequest *virginCause) = 0;
+ virtual Initiate *makeXactLauncher(Http::Message *virginHeader, HttpRequest *virginCause, AccessLogEntry::Pointer &alp) = 0;
bool wants(const ServiceFilter &filter) const;
// the methods below can only be called on an up() service
- virtual bool wantsUrl(const String &urlPath) const = 0;
+ virtual bool wantsUrl(const SBuf &urlPath) const = 0;
// called by transactions to report service failure
virtual void noteFailure() = 0;
typedef Service::Pointer ServicePointer;
-typedef Vector<Adaptation::ServicePointer> Services;
-extern Services &AllServices();
-extern ServicePointer FindService(const Service::Id &key);
+typedef std::vector<Adaptation::ServicePointer> Services;
+Services &AllServices();
+ServicePointer FindService(const Service::Id &key);
/// detach all adaptation services from current configuration
-extern void DetachServices();
+void DetachServices();
} // namespace Adaptation
#endif /* SQUID_ADAPTATION__SERVICE_H */
+