26 virtual void OnUnsetInternal(
User* source,
Channel* chan) = 0;
30 :
ModeHandler(Creator, Name, modeletter, ps, MODETYPE_CHANNEL, MC_PARAM) { }
35 virtual bool IsParameterSecret() {
return false; }
36 virtual void OnUnset(
User* source,
Channel* chan) { }
37 virtual ModeAction OnSet(
User* source,
Channel* chan, std::string& param) = 0;
38 virtual void GetParameter(
Channel* chan, std::string& out) = 0;
47 template <
typename T,
typename ExtItemT>
59 ParamMode(
Module* Creator,
const std::string& Name,
char modeletter, ParamSpec ps = PARAM_SETONLY)
61 , ext(
"parammode_" + Name,
ExtensionItem::EXT_CHANNEL, Creator)
65 void OnUnsetInternal(
User* source,
Channel* chan) CXX11_OVERRIDE
67 this->OnUnset(source, chan);
71 void GetParameter(
Channel* chan, std::string& out) CXX11_OVERRIDE
73 T* mh =
static_cast<T*
>(
this);
74 mh->SerializeParam(chan, ext.get(chan), out);