+/*
+ * Copyright (C) 1996-2020 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_SRC_MASTERXACTION_H
#define SQUID_SRC_MASTERXACTION_H
#include "anyp/forward.h"
-#include "base/CbcPointer.h"
+#include "anyp/PortCfg.h"
#include "base/InstanceId.h"
#include "base/Lock.h"
+#include "base/RefCount.h"
#include "comm/forward.h"
+#include "XactionInitiator.h"
/** Master transaction details.
*
public:
typedef RefCount<MasterXaction> Pointer;
+ explicit MasterXaction(const XactionInitiator anInitiator) : initiator(anInitiator) {};
+
/// transaction ID.
- InstanceId<MasterXaction> id;
+ InstanceId<MasterXaction, uint64_t> id;
/// the listening port which originated this transaction
AnyP::PortCfgPointer squidPort;
/// the client TCP connection which originated this transaction
Comm::ConnectionPointer tcpClient;
+ /// the initiator of this transaction
+ XactionInitiator initiator;
+
+ /// whether we are currently creating a CONNECT header (to be sent to peer)
+ bool generatingConnect = false;
+
// TODO: add state from other Jobs in the transaction
};
#endif /* SQUID_SRC_MASTERXACTION_H */
+