/*
- * Copyright (C) 1996-2016 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.
#ifndef SQUID_ACLDATA_H
#define SQUID_ACLDATA_H
+#include "acl/Options.h"
#include "sbuf/List.h"
-/// \ingroup ACLAPI
+/// Configured ACL parameter(s) (e.g., domain names in dstdomain ACL).
template <class M>
class ACLData
{
public:
-
+ ACLData() = default;
+ ACLData(ACLData<M> &&) = delete; // no copying of any kind
virtual ~ACLData() {}
+ /// supported ACL "line" options (e.g., "-i")
+ virtual const Acl::Options &lineOptions() { return Acl::NoOptions(); }
+
virtual bool match(M) =0;
virtual SBufList dump() const =0;
virtual void parse() =0;
- virtual ACLData *clone() const =0;
virtual void prepareForUse() {}
virtual bool empty() const =0;