bool initClientProcess(IGroup *servergrp, DaliClientRole role, unsigned mpport, const char *clientVersion, const char *minServerVersion, unsigned timeout) { assertex(servergrp); daliClientIsActive = true; startMPServer(mpport); Owned<ICommunicator> comm(createCommunicator(servergrp,true)); IGroup * covengrp; if (!registerClientProcess(comm.get(),covengrp,timeout,role)) { daliClientIsActive = false; return false; } initCoven(covengrp,NULL,clientVersion, minServerVersion); covengrp->Release(); queryLogMsgManager()->setSession(myProcessSession()); return true; }
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; }