+/*
+ * Copyright (C) 1996-2015 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_ACL_TREE_H
#define SQUID_ACL_TREE_H
#include "acl/BoolOps.h"
+#include "SBufList.h"
namespace Acl
{
/// unique properties: cbdata protection and optional rule actions.
class Tree: public OrNode
{
+ // XXX: We should use refcounting instead, but it requires making ACLs
+ // refcounted as well. Otherwise, async lookups will reach deleted ACLs.
+ CBDATA_CLASS(Tree);
+
public:
/// dumps <name, action, rule, new line> tuples
/// action.kind is mapped to a string using the supplied conversion table
typedef const char **ActionToString;
- wordlist* treeDump(const char *name, const ActionToString &convert) const;
+ SBufList treeDump(const char *name, const ActionToString &convert) const;
/// Returns the corresponding action after a successful tree match.
allow_t winningAction() const;
/// if not empty, contains actions corresponding to InnerNode::nodes
typedef std::vector<allow_t> Actions;
Actions actions;
-
-private:
- // XXX: We should use refcounting instead, but it requires making ACLs
- // refcounted as well. Otherwise, async lookups will reach deleted ACLs.
- CBDATA_CLASS2(Tree);
};
} // namespace Acl
#endif /* SQUID_ACL_TREE_H */
+