+/*
+ * Copyright (C) 1996-2021 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__ITERATOR_H
#define SQUID_ADAPTATION__ITERATOR_H
-#include "adaptation/Initiator.h"
+#include "AccessLogEntry.h"
#include "adaptation/Initiate.h"
+#include "adaptation/Initiator.h"
#include "adaptation/ServiceGroups.h"
+#include "http/forward.h"
namespace Adaptation
{
/// iterates services in ServiceGroup, starting adaptation launchers
class Iterator: public Initiate, public Initiator
{
+ CBDATA_CLASS(Iterator);
+
public:
- Iterator(HttpMsg *virginHeader, HttpRequest *virginCause,
+ Iterator(Http::Message *virginHeader, HttpRequest *virginCause,
+ AccessLogEntry::Pointer &alp,
const Adaptation::ServiceGroupPointer &aGroup);
virtual ~Iterator();
/// creates service filter for the current step
ServiceFilter filter() const;
- void handleAdaptedHeader(HttpMsg *msg);
+ void handleAdaptedHeader(Http::Message *msg);
void handleAdaptationBlock(const Answer &answer);
void handleAdaptationError(bool final);
ServiceGroupPointer theGroup; ///< the service group we are iterating
ServicePlan thePlan; ///< which services to use and in what order
- HttpMsg *theMsg; ///< the message being adapted (virgin for each step)
+ Http::Message *theMsg; ///< the message being adapted (virgin for each step)
HttpRequest *theCause; ///< the cause of the original virgin message
+ AccessLogEntry::Pointer al; ///< info for the future access.log entry
CbcPointer<Adaptation::Initiate> theLauncher; ///< current transaction launcher
int iterations; ///< number of steps initiated
bool adapted; ///< whether the virgin message has been replaced
-
- CBDATA_CLASS2(Iterator);
};
} // namespace Adaptation
-
#endif /* SQUID_ADAPTATION__ITERATOR_H */
+