[squid-dev] [PATCH] PayloadFormatter (was PackableStream)

Amos Jeffries squid3 at treenet.co.nz
Wed Aug 12 12:28:37 UTC 2015


On 12/08/2015 5:07 a.m., Alex Rousskov wrote:
> On 08/10/2015 08:20 AM, Amos Jeffries wrote:
>> Here is mk2 of the Formatter class for doing display things to CacheMgr
>> report payloads.
> 
> Please post the patch (your post had no attachments), preferably
> reflecting the discussion that happened since then.
> 

Oops. Sorry.

Amos

-------------- next part --------------
=== modified file 'src/ipc/Coordinator.cc'
--- src/ipc/Coordinator.cc	2015-01-13 07:25:36 +0000
+++ src/ipc/Coordinator.cc	2015-08-10 04:53:39 +0000
@@ -1,39 +1,40 @@
 /*
  * 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.
  */
 
 /* DEBUG: section 54    Interprocess Communication */
 
 #include "squid.h"
 #include "base/Subscription.h"
 #include "base/TextException.h"
 #include "CacheManager.h"
 #include "comm.h"
 #include "comm/Connection.h"
 #include "ipc/Coordinator.h"
 #include "ipc/SharedListen.h"
 #include "mgr/Inquirer.h"
+#include "mgr/PayloadFormatter.h"
 #include "mgr/Request.h"
 #include "mgr/Response.h"
 #include "tools.h"
 #if SQUID_SNMP
 #include "snmp/Inquirer.h"
 #include "snmp/Request.h"
 #include "snmp/Response.h"
 #endif
 
 #include <cerrno>
 
 CBDATA_NAMESPACED_CLASS_INIT(Ipc, Coordinator);
 Ipc::Coordinator* Ipc::Coordinator::TheInstance = NULL;
 
 Ipc::Coordinator::Coordinator():
     Port(Ipc::Port::CoordinatorAddr())
 {
 }
 
 void Ipc::Coordinator::start()

=== modified file 'src/mgr/Action.cc'
--- src/mgr/Action.cc	2015-01-13 07:25:36 +0000
+++ src/mgr/Action.cc	2015-08-10 03:56:00 +0000
@@ -1,54 +1,62 @@
 /*
  * 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.
  */
 
 /* DEBUG: section 16    Cache Manager API */
 
 #include "squid.h"
 #include "comm/Connection.h"
 #include "HttpReply.h"
 #include "ipc/Port.h"
 #include "mgr/Action.h"
 #include "mgr/ActionCreator.h"
 #include "mgr/ActionParams.h"
 #include "mgr/ActionProfile.h"
 #include "mgr/Command.h"
+#include "mgr/PayloadOldCgi.h"
 #include "mgr/Request.h"
 #include "mgr/Response.h"
 #include "SquidTime.h"
 #include "Store.h"
 
 Mgr::Action::Action(const Command::Pointer &aCmd): cmd(aCmd)
 {
     Must(cmd != NULL);
     Must(cmd->profile != NULL);
 }
 
 Mgr::Action::~Action()
 {
 }
 
+void
+Mgr::Action::dump(StoreEntry *e)
+{
+    Mgr::PayloadOldCgi p(*e);
+    displayWith(p);
+}
+
 const Mgr::Command &
 Mgr::Action::command() const
 {
     Must(cmd != NULL);
     return *cmd;
 }
 
 bool
 Mgr::Action::atomic() const
 {
     return command().profile->isAtomic;
 }
 
 const char*
 Mgr::Action::name() const
 {
     return command().profile->name;
 }
 
 StoreEntry*

=== modified file 'src/mgr/Action.h'
--- src/mgr/Action.h	2015-01-13 07:25:36 +0000
+++ src/mgr/Action.h	2015-08-10 05:37:40 +0000
@@ -1,35 +1,36 @@
 /*
  * 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.
  */
 
 /* DEBUG: section 16    Cache Manager API */
 
 #ifndef SQUID_MGR_ACTION_H
 #define SQUID_MGR_ACTION_H
 
 #include "ipc/forward.h"
 #include "mgr/forward.h"
+#include "mgr/PayloadFormatter.h"
 
 class StoreEntry;
 
 namespace Mgr
 {
 
 /// Base API for organizing the processing of a compiled cache manager command.
 /// Not a job because all methods are synchronous (but they may start jobs).
 class Action: public RefCountable
 {
 public:
     typedef RefCount<Action> Pointer;
 
 public:
     Action(const CommandPointer &aCmd);
     virtual ~Action();
 
     /* for local Cache Manager use */
 
     /// collect + fillEntry: collect local information and fill the store entry
@@ -63,34 +64,38 @@
     /// combined data should be written at the end of the coordinated response
     virtual bool aggregatable() const { return true; } // most kid classes are
 
     bool atomic() const; ///< dump() call writes everything before returning
     const char *name() const; ///< label as seen in the cache manager menu
     const Command &command() const; ///< the cause of this action
 
     StoreEntry *createStoreEntry() const; ///< creates store entry from params
 
     ///< Content-Type: header value for this report
     virtual const char *contentType() const {return "text/plain;charset=utf-8";}
 
 protected:
     /// calculate and keep local action-specific information
     virtual void collect() {}
 
     /** start writing action-specific info to Store entry;
      * may collect info during dump, especially if collect() did nothing
      * non-atomic() actions may continue writing asynchronously after returning
      */
-    virtual void dump(StoreEntry *) {}
+    virtual void displayWith(Mgr::PayloadFormatter &p) {p.notImplemented(name(), strlen(name()));}
+
+    // deprecated wrapper for displayWith().
+    // old code will override this instead of the new displayWith() method.
+    virtual void dump(StoreEntry *e);
 
 private:
     const CommandPointer cmd; ///< the command that caused this action
 
 private:
     Action(const Action &); // not implemented
     Action &operator= (const Action &); // not implemented
 };
 
 } // namespace Mgr
 
 #endif /* SQUID_MGR_ACTION_H */
 

=== modified file 'src/mgr/BasicActions.cc'
--- src/mgr/BasicActions.cc	2015-01-13 07:25:36 +0000
+++ src/mgr/BasicActions.cc	2015-08-10 05:38:50 +0000
@@ -14,41 +14,41 @@
 #include "mgr/ActionCreator.h"
 #include "mgr/ActionProfile.h"
 #include "mgr/BasicActions.h"
 #include "mgr/Registration.h"
 #include "protos.h"
 #include "SquidConfig.h"
 #include "Store.h"
 
 Mgr::IndexAction::Pointer
 Mgr::IndexAction::Create(const Command::Pointer &cmd)
 {
     return new IndexAction(cmd);
 }
 
 Mgr::IndexAction::IndexAction(const Command::Pointer &aCmd): Action(aCmd)
 {
     debugs(16, 5, HERE);
 }
 
 void
-Mgr::IndexAction::dump(StoreEntry *)
+Mgr::IndexAction::displayWith(Mgr::PayloadFormatter &)
 {
     debugs(16, 5, HERE);
 }
 
 Mgr::MenuAction::Pointer
 Mgr::MenuAction::Create(const Command::Pointer &cmd)
 {
     return new MenuAction(cmd);
 }
 
 Mgr::MenuAction::MenuAction(const Command::Pointer &aCmd): Action(aCmd)
 {
     debugs(16, 5, HERE);
 }
 
 void
 Mgr::MenuAction::dump(StoreEntry* entry)
 {
     debugs(16, 5, HERE);
     Must(entry != NULL);
@@ -58,102 +58,104 @@
 
     for (Iterator a = menu.begin(); a != menu.end(); ++a) {
         storeAppendPrintf(entry, " %-22s\t%-32s\t%s\n",
                           (*a)->name, (*a)->desc,
                           CacheManager::GetInstance()->ActionProtection(*a));
     }
 }
 
 Mgr::ShutdownAction::Pointer
 Mgr::ShutdownAction::Create(const Command::Pointer &cmd)
 {
     return new ShutdownAction(cmd);
 }
 
 Mgr::ShutdownAction::ShutdownAction(const Command::Pointer &aCmd): Action(aCmd)
 {
     debugs(16, 5, HERE);
 }
 
 void
-Mgr::ShutdownAction::dump(StoreEntry *)
+Mgr::ShutdownAction::displayWith(Mgr::PayloadFormatter &)
 {
     debugs(16, DBG_CRITICAL, "Shutdown by Cache Manager command.");
     shut_down(SIGTERM);
 }
 
 Mgr::ReconfigureAction::Pointer
 Mgr::ReconfigureAction::Create(const Command::Pointer &cmd)
 {
     return new ReconfigureAction(cmd);
 }
 
 Mgr::ReconfigureAction::ReconfigureAction(const Command::Pointer &aCmd):
     Action(aCmd)
 {
     debugs(16, 5, HERE);
 }
 
 void
-Mgr::ReconfigureAction::dump(StoreEntry* entry)
+Mgr::ReconfigureAction::displayWith(Mgr::PayloadFormatter &p)
 {
     debugs(16, DBG_IMPORTANT, "Reconfigure by Cache Manager command.");
-    storeAppendPrintf(entry, "Reconfiguring Squid Process ....");
+    static const SBuf s("Reconfiguring Squid Process ....");
+    p.notice(s);
     reconfigure(SIGHUP);
 }
 
 Mgr::RotateAction::Pointer
 Mgr::RotateAction::Create(const Command::Pointer &cmd)
 {
     return new RotateAction(cmd);
 }
 
 Mgr::RotateAction::RotateAction(const Command::Pointer &aCmd): Action(aCmd)
 {
     debugs(16, 5, HERE);
 }
 
 void
-Mgr::RotateAction::dump(StoreEntry* entry)
+Mgr::RotateAction::displayWith(Mgr::PayloadFormatter &p)
 {
     debugs(16, DBG_IMPORTANT, "Rotate Logs by Cache Manager command.");
-    storeAppendPrintf(entry, "Rotating Squid Process Logs ....");
+    static const SBuf s("Rotating Squid Process Logs ....");
+    p.notice(s);
 #if defined(_SQUID_LINUX_THREADS_)
     rotate_logs(SIGQUIT);
 #else
     rotate_logs(SIGUSR1);
 #endif
 }
 
 Mgr::OfflineToggleAction::Pointer
 Mgr::OfflineToggleAction::Create(const Command::Pointer &cmd)
 {
     return new OfflineToggleAction(cmd);
 }
 
 Mgr::OfflineToggleAction::OfflineToggleAction(const Command::Pointer &aCmd):
     Action(aCmd)
 {
     debugs(16, 5, HERE);
 }
 
 void
-Mgr::OfflineToggleAction::dump(StoreEntry* entry)
+Mgr::OfflineToggleAction::displayWith(Mgr::PayloadFormatter &p)
 {
     Config.onoff.offline = !Config.onoff.offline;
-    debugs(16, DBG_IMPORTANT, "offline_mode now " << (Config.onoff.offline ? "ON" : "OFF") << " by Cache Manager request.");
-
-    storeAppendPrintf(entry, "offline_mode is now %s\n",
-                      Config.onoff.offline ? "ON" : "OFF");
+    static const SBuf offline("offline_mode is now OFF");
+    static const SBuf online("offline_mode is now ON");
+    debugs(16, DBG_IMPORTANT, (Config.onoff.offline ? online : offline ) << " by Cache Manager request.");
+    p.notice(Config.onoff.offline ? online : offline);
 }
 
 void
 Mgr::RegisterBasics()
 {
     RegisterAction("index", "Cache Manager Interface", &Mgr::IndexAction::Create, 0, 1);
     RegisterAction("menu", "Cache Manager Menu", &Mgr::MenuAction::Create, 0, 1);
     RegisterAction("offline_toggle", "Toggle offline_mode setting", &Mgr::OfflineToggleAction::Create, 1, 1);
     RegisterAction("shutdown", "Shut Down the Squid Process", &Mgr::ShutdownAction::Create, 1, 1);
     RegisterAction("reconfigure", "Reconfigure Squid", &Mgr::ReconfigureAction::Create, 1, 1);
     RegisterAction("rotate", "Rotate Squid Logs", &Mgr::RotateAction::Create, 1, 1);
 }
 

=== modified file 'src/mgr/BasicActions.h'
--- src/mgr/BasicActions.h	2015-01-13 07:25:36 +0000
+++ src/mgr/BasicActions.h	2015-08-10 03:34:14 +0000
@@ -10,93 +10,93 @@
 
 #ifndef SQUID_MGR_BASIC_ACTIONS_H
 #define SQUID_MGR_BASIC_ACTIONS_H
 
 #include "mgr/Action.h"
 
 /* a collection of simple, mostly stateless actions */
 
 namespace Mgr
 {
 
 /// A dummy action placeholder for the no-action requests
 /// a templated Cache Manager index ('home') page.
 /// Display output is produced directly by the receiving worker
 /// without invoking the co-ordinator or action Job.
 class IndexAction: public Action
 {
 public:
     static Pointer Create(const CommandPointer &cmd);
     /* Action API */
-    virtual void dump(StoreEntry *entry);
+    virtual void displayWith(Mgr::PayloadFormatter &) override final;
 
 protected:
     IndexAction(const CommandPointer &cmd);
 };
 
 /// returns available Cache Manager actions and their access requirements
 class MenuAction: public Action
 {
 public:
     static Pointer Create(const CommandPointer &cmd);
     /* Action API */
     virtual void dump(StoreEntry *entry);
 
 protected:
     MenuAction(const CommandPointer &cmd);
 };
 
 /// shuts Squid down
 class ShutdownAction: public Action
 {
 public:
     static Pointer Create(const CommandPointer &cmd);
     /* Action API */
-    virtual void dump(StoreEntry *entry);
+    virtual void displayWith(Mgr::PayloadFormatter &) override final;
 
 protected:
     ShutdownAction(const CommandPointer &cmd);
 };
 
 /// reconfigures Squid
 class ReconfigureAction: public Action
 {
 public:
     static Pointer Create(const CommandPointer &cmd);
     /* Action API */
-    virtual void dump(StoreEntry *entry);
+    virtual void displayWith(Mgr::PayloadFormatter &) override final;
 
 protected:
     ReconfigureAction(const CommandPointer &cmd);
 };
 
 /// starts log rotation
 class RotateAction: public Action
 {
 public:
     static Pointer Create(const CommandPointer &cmd);
     /* Action API */
-    virtual void dump(StoreEntry *entry);
+    virtual void displayWith(Mgr::PayloadFormatter &) override final;
 
 protected:
     RotateAction(const CommandPointer &cmd);
 };
 
 /// changes offline mode
 class OfflineToggleAction: public Action
 {
 public:
     static Pointer Create(const CommandPointer &cmd);
     /* Action API */
-    virtual void dump(StoreEntry *entry);
+    virtual void displayWith(Mgr::PayloadFormatter &) override final;
 
 protected:
     OfflineToggleAction(const CommandPointer &cmd);
 };
 
 /// Registeres profiles for the actions above; \todo move elsewhere?
 void RegisterBasics();
 
 } // namespace Mgr
 
 #endif /* SQUID_MGR_BASIC_ACTIONS_H */
 

=== modified file 'src/mgr/Makefile.am'
--- src/mgr/Makefile.am	2015-01-13 07:25:36 +0000
+++ src/mgr/Makefile.am	2015-08-10 09:24:03 +0000
@@ -25,39 +25,42 @@
 	BasicActions.h \
 	Command.cc \
 	Command.h \
 	CountersAction.cc \
 	CountersAction.h \
 	Filler.cc \
 	Filler.h \
 	Forwarder.cc \
 	Forwarder.h \
 	forward.h \
 	FunAction.cc \
 	FunAction.h \
 	InfoAction.cc \
 	InfoAction.h \
 	Inquirer.cc \
 	Inquirer.h \
 	IntervalAction.cc \
 	IntervalAction.h \
 	IoAction.cc \
 	IoAction.h \
+	PayloadFormatter.h \
+	PayloadOldCgi.cc \
+	PayloadOldCgi.h \
 	Registration.cc \
 	Registration.h \
 	Request.cc \
 	Request.h \
 	Response.cc \
 	Response.h \
 	ServiceTimesAction.cc \
 	ServiceTimesAction.h \
 	StoreIoAction.cc \
 	StoreIoAction.h \
 	StoreToCommWriter.cc \
 	StoreToCommWriter.h \
 	QueryParam.h \
 	QueryParams.cc \
 	QueryParams.h \
 	IntParam.cc \
 	IntParam.h \
 	StringParam.cc \
 	StringParam.h

=== added file 'src/mgr/PayloadFormatter.h'
--- src/mgr/PayloadFormatter.h	1970-01-01 00:00:00 +0000
+++ src/mgr/PayloadFormatter.h	2015-08-10 05:59:45 +0000
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+
+/* DEBUG: section 16    Cache Manager API */
+
+#ifndef SQUID_SRC_MGR_PAYLOADFORMATTER_H
+#define SQUID_SRC_MGR_PAYLOADFORMATTER_H
+
+#include "base/Packable.h"
+#include "mgr/forward.h"
+
+class SBuf;
+
+namespace Mgr
+{
+
+/// Base API for organizing the processing of a compiled cache manager command.
+/// Not a job because all methods are synchronous (but they may start jobs).
+class PayloadFormatter
+{
+public:
+    explicit PayloadFormatter(Packable &p) : outBuf(p) {}
+    virtual ~PayloadFormatter() = default;
+
+    void notImplemented(const char *name, size_t len) {
+        outBuf.append(name, len);
+        outBuf.append(" is Not Implemented",19);
+    }
+
+    // a comment
+    virtual void notice(const SBuf &) = 0;
+
+protected:
+    Packable &outBuf;
+};
+
+} // namepace Mgr
+
+#endif /* SQUID_SRC_MGR_PAYLOADFORMATTER_H */

=== added file 'src/mgr/PayloadOldCgi.cc'
--- src/mgr/PayloadOldCgi.cc	1970-01-01 00:00:00 +0000
+++ src/mgr/PayloadOldCgi.cc	2015-08-12 02:39:55 +0000
@@ -0,0 +1,22 @@
+/*
+ * 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.
+ */
+
+/* DEBUG: section 16    Cache Manager API */
+
+#include "squid.h"
+#include "base/Packable.h"
+#include "mgr/PayloadOldCgi.h"
+#include "SBuf.h"
+
+void
+Mgr::PayloadOldCgi::notice(const SBuf &s)
+{
+    outBuf.append(s.rawContent(), s.length());
+    outBuf.append("\n",2);
+}
+

=== added file 'src/mgr/PayloadOldCgi.h'
--- src/mgr/PayloadOldCgi.h	1970-01-01 00:00:00 +0000
+++ src/mgr/PayloadOldCgi.h	2015-08-12 11:07:37 +0000
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+
+/* DEBUG: section 16    Cache Manager API */
+
+#ifndef SQUID_SRC_MGR_PAYLOADOLDCGI_H
+#define SQUID_SRC_MGR_PAYLOADOLDCGI_H
+
+#include "mgr/PayloadFormatter.h"
+
+namespace Mgr
+{
+
+/**
+ * Produces cache manager report payloads in a human-readable markup syntax
+ * which is parsed by the cachemgr.cgi tool.
+ *
+ * Syntax ABNF:
+ *  payload     = *( table / kv-list / notice / LF )
+ *  table       = [ label ':' [ table-row ] ] 1*( table-row )
+ *  table-row   = 1*( [ string ] '\t' ) string LF
+ *  kv-list     = label ( '=' / ':' ' ' ) string LF
+ *  label       = 1*( VCHAR / SP ) ; any printable excluding ':' and '='
+ *  notice      = string LF
+ *  string      = 1*OCTET    ; any characters excluding LF (\n) and TAB (\t)
+ */
+class PayloadOldCgi: public PayloadFormatter
+{
+public:
+    PayloadOldCgi(Packable &p): PayloadFormatter(p) {}
+    virtual ~PayloadOldCgi() = default;
+
+    /* PayloadFormatter API */
+    virtual void notice(const SBuf &) override final;
+};
+
+} // namepace Mgr
+
+#endif /* SQUID_SRC_MGR_PAYLOADOLDCGI_H */

=== modified file 'src/mgr/forward.h'
--- src/mgr/forward.h	2015-08-01 02:13:13 +0000
+++ src/mgr/forward.h	2015-08-10 05:06:30 +0000
@@ -6,40 +6,42 @@
  * Please see the COPYING and CONTRIBUTORS files for details.
  */
 
 /* DEBUG: section 16    Cache Manager API */
 
 #ifndef SQUID_MGR_FORWARD_H
 #define SQUID_MGR_FORWARD_H
 
 #include "base/RefCount.h"
 
 /// Cache Manager API
 namespace Mgr
 {
 
 class Action;
 class ActionCreator;
 class ActionPasswordList;
 class ActionProfile;
 class ActionWriter;
 class Command;
+class PayloadFormatter;
+class PayloadOldCgi;
 class Request;
 class Response;
 class QueryParam;
 class QueryParams;
 
 typedef RefCount<Action> ActionPointer;
 typedef RefCount<ActionProfile> ActionProfilePointer;
 typedef RefCount<ActionCreator> ActionCreatorPointer;
 typedef RefCount<Command> CommandPointer;
 
 typedef ActionPointer (ClassActionCreationHandler)(const CommandPointer &cmd);
 
 } // namespace Mgr
 
 class StoreEntry;
 /**
  * Handler for "dumping" out a cachemgr report to a StoreEntry
  */
 typedef void OBJH(StoreEntry *);
 

=== modified file 'src/tests/stub_libmgr.cc'
--- src/tests/stub_libmgr.cc	2015-01-13 07:25:36 +0000
+++ src/tests/stub_libmgr.cc	2015-08-10 13:21:50 +0000
@@ -15,76 +15,77 @@
 // NP: used by Command.h instantiations
 #include "mgr/ActionProfile.h"
 
 // NP: used by Action.h instantiations
 #include "mgr/Command.h"
 std::ostream &operator <<(std::ostream &os, const Mgr::Command &cmd) STUB_RETVAL(os)
 
 #include "mgr/Action.h"
 Mgr::Action::Action(const CommandPointer &aCmd) STUB
 Mgr::Action::~Action() STUB
 void Mgr::Action::run(StoreEntry *entry, bool writeHttpHeader) STUB
 void Mgr::Action::fillEntry(StoreEntry *entry, bool writeHttpHeader) STUB
 void Mgr::Action::add(const Action &action) STUB
 void Mgr::Action::respond(const Request &request) STUB
 void Mgr::Action::sendResponse(unsigned int requestId) STUB
 bool Mgr::Action::atomic() const STUB_RETVAL(false)
 const char * Mgr::Action::name() const STUB_RETVAL(NULL)
 static Mgr::Command static_Command;
 const Mgr::Command & Mgr::Action::command() const STUB_RETVAL(static_Command)
 StoreEntry * Mgr::Action::createStoreEntry() const STUB_RETVAL(NULL)
+void Mgr::Action::dump(StoreEntry *) STUB
 static Mgr::Action::Pointer dummyAction;
 
 #include "mgr/ActionParams.h"
 Mgr::ActionParams::ActionParams() STUB_NOP
 Mgr::ActionParams::ActionParams(const Ipc::TypedMsgHdr &msg) STUB_NOP
 void Mgr::ActionParams::pack(Ipc::TypedMsgHdr &msg) const STUB
 std::ostream &operator <<(std::ostream &os, const Mgr::ActionParams &params) STUB_RETVAL(os)
 
 #include "mgr/ActionWriter.h"
 //Mgr::ActionWriter::ActionWriter(const Action::Pointer &anAction, int aFd) STUB
 //protected:
 void Mgr::ActionWriter::start() STUB
 
 #include "mgr/BasicActions.h"
 Mgr::Action::Pointer Mgr::MenuAction::Create(const Mgr::CommandPointer &cmd) STUB_RETVAL(dummyAction)
 void Mgr::MenuAction::dump(StoreEntry *entry) STUB
 //protected:
 //Mgr::MenuAction::MenuAction(const CommandPointer &cmd) STUB
 
 Mgr::Action::Pointer Mgr::ShutdownAction::Create(const Mgr::CommandPointer &cmd) STUB_RETVAL(dummyAction)
-void Mgr::ShutdownAction::dump(StoreEntry *entry) STUB
+void Mgr::ShutdownAction::displayWith(Mgr::PayloadFormatter &) STUB
 // protected:
 //Mgr::ShutdownAction::ShutdownAction(const CommandPointer &cmd) STUB
 
 Mgr::Action::Pointer Mgr::ReconfigureAction::Create(const Mgr::CommandPointer &cmd) STUB_RETVAL(dummyAction)
-void Mgr::ReconfigureAction::dump(StoreEntry *entry) STUB
+void Mgr::ReconfigureAction::displayWith(Mgr::PayloadFormatter &) STUB
 //protected:
 //Mgr::ReconfigureAction::ReconfigureAction(const CommandPointer &cmd) STUB
 
 Mgr::Action::Pointer Mgr::RotateAction::Create(const Mgr::CommandPointer &cmd) STUB_RETVAL(dummyAction)
-void Mgr::RotateAction::dump(StoreEntry *entry) STUB
+void Mgr::RotateAction::displayWith(Mgr::PayloadFormatter &) STUB
 //protected:
 //Mgr::RotateAction::RotateAction(const CommandPointer &cmd) STUB
 
 Mgr::Action::Pointer Mgr::OfflineToggleAction::Create(const CommandPointer &cmd) STUB_RETVAL(dummyAction)
-void Mgr::OfflineToggleAction::dump(StoreEntry *entry) STUB
+void Mgr::OfflineToggleAction::displayWith(Mgr::PayloadFormatter &) STUB
 //protected:
 //Mgr::OfflineToggleAction::OfflineToggleAction(const CommandPointer &cmd) STUB
 
 void Mgr::RegisterBasics() STUB
 
 #include "mgr/CountersAction.h"
 //Mgr::CountersActionData::CountersActionData() STUB
 Mgr::CountersActionData& Mgr::CountersActionData::operator +=(const Mgr::CountersActionData& stats) STUB_RETVAL(*this)
 
 Mgr::Action::Pointer Mgr::CountersAction::Create(const CommandPointer &cmd) STUB_RETVAL(dummyAction)
 void Mgr::CountersAction::add(const Action& action) STUB
 void Mgr::CountersAction::pack(Ipc::TypedMsgHdr& msg) const STUB
 void Mgr::CountersAction::unpack(const Ipc::TypedMsgHdr& msg) STUB
 //protected:
 //Mgr::CountersAction::CountersAction(const CommandPointer &cmd) STUB
 void Mgr::CountersAction::collect() STUB
 void Mgr::CountersAction::dump(StoreEntry* entry) STUB
 
 #include "mgr/Filler.h"
 //Mgr::Filler::Filler(const Action::Pointer &anAction, int aFd, unsigned int aRequestId) STUB



More information about the squid-dev mailing list