void closedownClientProcess() { if (!daliClientIsActive) return; while (shutdownHooks.ordinality()) { Owned<IDaliClientShutdown> c = &shutdownHooks.popGet(); c->clientShutdown(); } clearPagedElementsCache(); // has connections closeSDS(); closeSubscriptionManager(); stopClientProcess(); closeCoven(); stopMPServer(); if (restoreSEH) { DisableSEHtoExceptionMapping(); restoreSEH = false; } daliClientIsActive = false; }
bool reinitClientProcess(IGroup *servergrp, DaliClientRole role, const char *clientVersion, const char *minServerVersion, unsigned timeout) { if (!daliClientIsActive) return false; while (shutdownHooks.ordinality()) { Owned<IDaliClientShutdown> c = &shutdownHooks.popGet(); c->clientShutdown(); } stopClientProcess(); closeSDS(); closeSubscriptionManager(); closeCoven(); Owned<ICommunicator> comm(createCommunicator(servergrp,true)); IGroup * covengrp; if (!registerClientProcess(comm.get(),covengrp,timeout,role)) // should be save as before TBD return false; initCoven(covengrp,NULL,clientVersion,minServerVersion); covengrp->Release(); return true; }