{parsesig, helptext, modulename, req_perms, avail},
#include <mon/MonCommands.h>
};
+const MonCommand *leader_supported_mon_commands = NULL;
+int leader_supported_mon_commands_size = 0;
bool Monitor::_allowed_command(MonSession *s, string &module, string &prefix,
map<string,cmd_vartype>& cmdmap) {
*cmds = mon_commands;
*count = ARRAY_SIZE(mon_commands);
}
+void get_leader_supported_commands(const MonCommand **cmds, int *count)
+{
+ *cmds = leader_supported_mon_commands;
+ *count = leader_supported_mon_commands_size;
+}
+void set_leader_supported_commands(const MonCommand *cmds, int size)
+{
+ if (leader_supported_mon_commands != mon_commands)
+ delete[] leader_supported_mon_commands;
+ leader_supported_mon_commands = cmds;
+ leader_supported_mon_commands_size = size;
+}
void Monitor::handle_command(MMonCommand *m)
{
Formatter *f,
bufferlist *rdata);
void get_locally_supported_monitor_commands(const MonCommand **cmds, int *count);
+void get_leader_supported_commands(const MonCommand **cmds, int *count);
+/// the Monitor owns this pointer once you pass it in
+void set_leader_supported_commands(const MonCommand *cmds, int size);
+
#endif