UdpPacketReader::UdpPacketReader(INfpvrInterfaceNetwork& nfpvrInterface, int udpPort): _nfpvrInterface(nfpvrInterface), _udpPort(udpPort), _socket(0), _rawFile(0), _isBound(false), _handlerCount(0) { memset(_handlers, 0, sizeof(_handlers)); networkInitialize(); if (_nfpvrInterface.getOptions()._writeRaw) { const char* filename = _nfpvrInterface.getOptions()._writeRawFilename; if (filename) { _rawFile = fopen(filename, "wb"); if (_rawFile) { _nfpvrInterface.notify(INfpvrInterface::NotifyMessage, "Opened raw file %s", filename); } else { _nfpvrInterface.notify(INfpvrInterface::NotifyError, "Can't open raw file %s", filename); } } } }
//----------------------------------------------------------------------------- // 描述: 应用程序初始化 (若初始化失败则抛出异常) //----------------------------------------------------------------------------- void IseApplication::initialize() { try { #ifdef ISE_LINUX // 在初始化阶段要屏蔽退出信号 SignalMasker sigMasker(true); sigMasker.setSignals(1, SIGTERM); sigMasker.block(); #endif networkInitialize(); initExeName(); iseBusiness_->beforeInit(); iseBusiness_->initIseOptions(iseOptions_); processStandardArgs(true); checkMultiInstance(); // if (iseOptions_.getIsDaemon()) initDaemon(); initSignals(); initNewOperHandler(); applyIseOptions(); createMainServer(); iseBusiness_->initialize(); mainServer_->initialize(); iseBusiness_->afterInit(); if (iseOptions_.getIsDaemon()) closeTerminal(); initialized_ = true; } catch (Exception& e) { openTerminal(); iseBusiness_->onInitFailed(e); doFinalize(); throw; } }