| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #  | 
| # @todo:   | 
| #  | 
| # @author: Alee  | 
| # @date 2018-1-3 ÏÂÎç05:52:47  | 
| # @version 1.0  | 
| #  | 
| # @note:   | 
| #  | 
| #---------------------------------------------------------------------  | 
|   | 
| import ConfigParser  | 
| import mylog  | 
|   | 
| class AppConfig():  | 
|     def __init__(self, filePath):  | 
|         self.config = ConfigParser.ConfigParser()  | 
|         self.config.read(filePath)  | 
|           | 
|     def SetSection(self, sectionName ):  | 
|         self.sectionName = sectionName  | 
|           | 
|     def GetValue(self, key):  | 
|         return self.config.get(self.sectionName,key)   | 
|       | 
|     def GetIntValue(self, key):  | 
|         return self.config.getint(self.sectionName,key)   | 
|   | 
| class GameConfig():  | 
|     def __init__(self, filePath):  | 
|         config = AppConfig( filePath )  | 
|         mylog.debug( "Config file:%s", filePath )  | 
|         config.SetSection( "ServerConfig" )  | 
|         self.ip = config.GetValue( "IP" )  | 
|         self.port = config.GetIntValue( "Port" )  | 
|           | 
|         config.SetSection( "VersionConfig" )  | 
|         self.ClientVersion = config.GetValue( "ClientVersion" )  | 
|         self.VersionNO = config.GetIntValue( "VERSION_NO" )  | 
|         self.StartCnt = config.GetIntValue( "PACK_START_COUNT" )  | 
|         self.KeyName = config.GetValue( "Key" )  | 
|         keylen = len(self.KeyName)-1  | 
|         self.KeyName = self.KeyName[1:keylen]  | 
|         self.SendKeyDictPath = config.GetValue( "SendKeyDictFile" )  | 
|           | 
|         config.SetSection( "MapDataConfig" )  | 
|         self.MapFilePath = config.GetValue( "MapFilePath" )  | 
|         self.MapPostFix = config.GetValue( "MapPostFix" )  | 
|           | 
|           | 
|         config.SetSection( "ThreadNumberControl" )  | 
|         self.IOThreadNum = config.GetIntValue( "IOWorkerThreadNum" )  | 
|         self.AIThreadNum = config.GetIntValue( "AIWorkerThreadNum" )  | 
|           | 
|         config.SetSection( "RunningParams" )  | 
|         self.UsePsyco = config.GetIntValue( "UsePsyco" )  | 
|         self.AISleepPeriod = config.GetIntValue( "AISleepPeriod" )  | 
|         self.PlayerOffTime = config.GetIntValue( "PlayerOffTime")  | 
|         self.ProcessFindTJGTime = config.GetIntValue( "ProcessFindTJGTime")  | 
|         self.ServerDBConfigPath = config.GetValue( "ServerDBConfigPath")  | 
|         self.StartRunTime = config.GetIntValue( "StartRunTime")  | 
|           | 
|     def GetIOThreadNum(self):  | 
|         return self.IOThreadNum  | 
|       | 
|     def GetAIThreadNum(self):  | 
|         return self.AIThreadNum  | 
|           | 
|     def GetServerIP(self):  | 
|         return self.ip  | 
|       | 
|     def GetServerPort(self):  | 
|         return self.port  | 
|       | 
|     def GetClientVersion(self):  | 
|         return self.ClientVersion  | 
|       | 
|     def GetVersionNo(self):  | 
|         return self.VersionNO  | 
|       | 
|     def GetPackStartCount(self):  | 
|         return self.StartCnt  | 
|       | 
|     def GetKeyString(self):  | 
|         return self.KeyName  | 
|       | 
|     def GetSendKeyDictFilePath(self):  | 
|         return self.SendKeyDictPath  | 
|       | 
|     def GetMapFilePath(self):  | 
|         return self.MapFilePath  | 
|       | 
|     def GetMapFilePostFix(self):  | 
|         return self.MapPostFix  | 
|       | 
|     def GetUsePsyco(self):  | 
|         return self.UsePsyco  | 
|       | 
|     def GetAISleepPeriod(self):  | 
|         return self.AISleepPeriod  | 
|       | 
|     # Íæ¼ÒÏÂÏßʱ³¤  | 
|     def GetPlayerOffTime(self):  | 
|         return self.PlayerOffTime  | 
|       | 
|     # ´ÓÊý¾Ý¿â²éѯÍÑ»ú¹ÒÍæ¼ÒµÄ¼ä¸ô  | 
|     def GetProcessFindTJGTime(self):  | 
|         return self.ProcessFindTJGTime  | 
|   | 
|     def GetServerDBConfigPath(self):  | 
|         return self.ServerDBConfigPath  | 
|   | 
|     def GetStartRunTime(self):  | 
|         return self.StartRunTime  | 
|       | 
|     def __str__(self):  | 
|         return "ClientVersion:[%s]\n" \  | 
|             "KeyString:[%s]\n" \  | 
|             "MapFilePath:[%s]\n" \  | 
|             "MapFilePostFix:[%s]\n" \  | 
|             "PackStartCount:[%u]\n" \  | 
|             "SendKeyDictFile:[%s]\n" \  | 
|             "ServerIP:[%s]\n" \  | 
|             "ServerPort:[%u]\n" \  | 
|             "VersionNO:[%u]\n" \  | 
|             "IOThreadNum:[%u]\n" \  | 
|             "AIThreadNum:[%u]\n" \  | 
|             "UsePsyco:[%u]\n" \  | 
|             "AISleepPeriod:[%u]\n" \  | 
|          % \  | 
|         ( \  | 
|             self.GetClientVersion(),\  | 
|             self.GetKeyString(), \  | 
|             self.GetMapFilePath(), \  | 
|             self.GetMapFilePostFix(), \  | 
|             self.GetPackStartCount(), \  | 
|             self.GetSendKeyDictFilePath(), \  | 
|             self.GetServerIP(), \  | 
|             self.GetServerPort(), \  | 
|             self.GetVersionNo(), \  | 
|             self.GetIOThreadNum(), \  | 
|             self.GetAIThreadNum(), \  | 
|             self.GetUsePsyco(), \  | 
|             self.GetAISleepPeriod(), \  | 
|         )  | 
|           | 
| __gGameConfig = None  | 
|   | 
| def ReadConfig( filename ):  | 
|     global __gGameConfig  | 
|     if not __gGameConfig:  | 
|         __gGameConfig =  GameConfig( filename )  | 
|           | 
|           | 
| def GetConfig():  | 
|     global __gGameConfig  | 
|     return __gGameConfig  | 
|   | 
| if __name__ == '__main__':  | 
|     FilePath = "..\Configuration\Config.ini"   | 
|     SectionName = "GameConfig"  | 
|   | 
|     ReadConfig( FilePath )  | 
|     config = GetConfig()  | 
|     print config  |