2 * Copyright (C) 1996-2025 The Squid Software Foundation and contributors
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
9 /* DEBUG: section 16 Cache Manager API */
11 #ifndef SQUID_SRC_MGR_ACTIONPROFILE_H
12 #define SQUID_SRC_MGR_ACTIONPROFILE_H
14 #include "mgr/ActionCreator.h"
15 #include "mgr/ActionFeatures.h"
16 #include "mgr/forward.h"
21 /// hard-coded Cache Manager action configuration, including Action creator
22 class ActionProfile
: public RefCountable
25 typedef RefCount
<ActionProfile
> Pointer
;
28 ActionProfile(const char* aName
, const char* aDesc
,
29 ActionCreatorPointer aCreator
,
30 const Protected aProtected
,
31 const Atomic anAtomic
,
32 const Format aFormat
):
33 name(aName
), desc(aDesc
),
34 isPwReq(aProtected
== Protected::yes
),
35 isAtomic(anAtomic
== Atomic::yes
),
41 const char *name
; ///< action label to uniquely identify this action
42 const char *desc
; ///< action description to build an action menu list
43 bool isPwReq
; ///< whether password is required to perform the action
44 bool isAtomic
; ///< whether action dumps everything in one dump() call
45 Format format
; ///< action report syntax
46 ActionCreatorPointer creator
; ///< creates Action objects with this profile
50 operator <<(std::ostream
&os
, const ActionProfile
&profile
)
52 return os
<< profile
.name
;
57 #endif /* SQUID_SRC_MGR_ACTIONPROFILE_H */