public PuppetSlave() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); brokersRegistry = new Dictionary <string, string>(); allProcess = new Dictionary <string, string>(); ownData = new SiteNode(); form = new SlaveRegisterForm(); channel = new TcpChannel(); urlFather = ""; remoteSlaveService = new RemotePSlaveService(); allSlaveProcesses = new List <Process>(); RemotingServices.Marshal(remoteSlaveService, "Slave", typeof(RemotePSlaveService)); ChannelServices.RegisterChannel(channel, false); form.addMsgToLog += new DelAddMsgToLog(addMsgToLog); form.setServer += new DelSetServerInterface(setServerInterface); form.registerSlave += new DelRegisterSlave(saveSlaveData); form.setTCP += new DelsSetTCPChanel(setTCPChanel); remoteSlaveService.sendMsgToLog += new DelAddMsgToLog(addMsgToLog); remoteSlaveService.getData += new DelGetSlaveData(getData); remoteSlaveService.start += new DelStartProcess(startProcess); remoteSlaveService.registerBroker += new DelStartProcess(registerBroker); remoteSlaveService.handShake += new DelRelation(fatherHandShake); remoteSlaveService.myUrlBroker += new DelSomeInfo(getBrokerUrl); remoteSlaveService.addFather += new DelRelation(childHandShake); remoteSlaveService.myFatherUrl += new DelSomeInfo(getMyFatherUrl); remoteSlaveService.searchProcess += new DelGetInfo(verifyProcessName); remoteSlaveService.deliveryMaster += new DelAddMsgToLog(addMsgToLogMaster); remoteSlaveService.status += new DelIniciateRelation(getStatus); remoteSlaveService.removeProcess += new DelFlooding(removeProcessFromList); }