\ingroup Components
*/
-/**
- \ingroup CacheManagerAPI
- * A single menu item in the cache manager - an 'action'.
- */
-class CacheManagerAction
-{
+class CacheManagerAction {
+public:
+ virtual void run(StoreEntry *sentry) = 0;
+ char *action;
+ char *desc;
+ struct
+ {
+ unsigned int pw_req:1;
+ unsigned int atomic:1;
+ } flags;
+ CacheManagerAction *next;
+ virtual ~CacheManagerAction() { }
+};
+class CacheManagerActionLegacy : public CacheManagerAction {
public:
- char *action;
- char *desc;
- OBJH *handler;
-
- struct
- {
- unsigned int pw_req:1;
- unsigned int atomic:1;
- } flags;
+ OBJH *handler;
+ virtual void run (StoreEntry *sentry);
+};
- CacheManagerAction *next;
+class CacheManagerShutdownAction : public CacheManagerAction {
+public:
+ virtual void run (StoreEntry *sentry);
};
+/// \ingroup CacheManagerInternal
+typedef struct
+{
+ StoreEntry *entry;
+ char *action;
+ char *user_name;
+ char *passwd;
+} cachemgrStateData;
+ /// \ingroup CacheManagerInternal
+ typedef struct
+ {
+ StoreEntry *entry;
+ char *action;
+ char *user_name;
+ char *passwd;
+ } cachemgrStateData;
+
/**
\ingroup CacheManagerAPI
* a CacheManager - the menu system for interacting with squid.