Mangos源码分析
--Launch the mangos server
int main(int argc, char **argv)
{
// - Construct Memory Manager Instance
MaNGOS::Singleton<MemoryManager>::Instance();
//char *leak = new char[1000]; // test leak detection
///- Command line parsing to get the configuration file name
char const* cfg_file = _MANGOSD_CONFIG;
int c=1;
while( c < argc )
{
if( strcmp(argv[c],"-c") == 0)
{
if( ++c >= argc )
{
sLog.outError("Runtime-Error: -c option requires an input argument");
usage(argv[0]);
return 1;
}
else
cfg_file = argv[c];
}
else
{
sLog.outError("Runtime-Error: unsupported option %s",argv[c]);
usage(argv[0]);
return 1;
}
++c;
}
if (!sConfig.SetSource(cfg_file)) //设置配置文件
{
sLog.outError("Could not find configuration file %s.", cfg_file);
return 1;
}
sLog.outString("Using configuration file %s.", cfg_file);
///- and run the 'Master'
/// /todo Why do we need this 'Master'? Can't all of this be in the Main as for Realmd?