Add /flush to force server cache reset with internal Server

nix
Owen Green 5 years ago
parent c8c9a8ed4d
commit 5cbe109c93

@ -898,6 +898,13 @@ namespace impl {
RegisterUnitIf<IsRTQueryModel,NRTModelQueryUnit>()(ft); RegisterUnitIf<IsRTQueryModel,NRTModelQueryUnit>()(ft);
Client::getMessageDescriptors().template iterate<SetupMessageCmd>(); Client::getMessageDescriptors().template iterate<SetupMessageCmd>();
static std::string flushCmd = std::string(Wrapper::getName()) + "/flush";
ft->fDefinePlugInCmd(flushCmd.c_str(),[](World*, void*, struct sc_msg_iter*, void* ){
mCache.clear();
},nullptr);
} }

@ -15,6 +15,7 @@ FluidServerObject
serverCaches[this] ?? {serverCaches[this] = FluidServerCache.new}; serverCaches[this] ?? {serverCaches[this] = FluidServerCache.new};
serverCaches[this].initCache(server); serverCaches[this].initCache(server);
NotificationCenter.register(server,\newAllocators,this,{ count = 0; }); NotificationCenter.register(server,\newAllocators,this,{ count = 0; });
ServerBoot.add({this.flush(Server.internal)},Server.internal);
} }
*newMsg{|id, params| *newMsg{|id, params|
@ -81,6 +82,9 @@ FluidServerObject
*objectClassName { ^this.name.asSymbol } *objectClassName { ^this.name.asSymbol }
*flushMsg { ^['/cmd',this.objectClassName ++ '/flush'] }
*flush {|server| server.listSendMsg(this.flushMsg)}
} }
FluidBufProcessor : FluidServerObject FluidBufProcessor : FluidServerObject

Loading…
Cancel
Save