#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
from Protocol import (MMORPGPack,RecvPackProtocol, SendPackProtocol)  
 | 
from Common import (CommFunc, mylog)  
 | 
  
 | 
# from DBCommon import (CommonDefine,SingletonObject)  
 | 
# import GMToolCommandMgr  
 | 
# g_GMCMDMgr = GMToolCommandMgr.GetGMOrderMgr()  
 | 
  
 | 
##################################################################   
 | 
                ####### ÌṩµÄ½Ó¿Ú ######  
 | 
#ת·¢GM¹¤¾ßÃüÁî°üµ½GameServer    
 | 
def SendGMToolCommandToGameServer(pack):  
 | 
    # global g_GMCMDMgr  
 | 
       
 | 
    # recvPack = RecvPackProtocol.tagGMCommand()  
 | 
    # recvPack.ReadData(pack.getBuffer())  
 | 
    # recvPack.Type = CommonDefine.bgDBGMCommand  
 | 
      
 | 
    # mylog.info('ProjSpecialProcess SendGMToolCommandToGameServer OrderId = %s'%recvPack.OrderId)  
 | 
      
 | 
    # ServerMgr = MongoDBServer.getServerMgr()  
 | 
    # sendViaSessionID = ServerMgr.getClientSessionIDByName("CenterGate",0)  
 | 
      
 | 
    # SessionID = 0  
 | 
    # PoolIndex = -1  
 | 
    # mylog.info('ProjSpecialProcess SendGMToolCommandToGameServer sendViaSessionID = %s,SessionID = %d,PoolIndex = %d'%(  
 | 
    #                                                                                                            sendViaSessionID,  
 | 
    #                                                                                                            SessionID,  
 | 
    #                                                                                                            PoolIndex))  
 | 
    # ServerMgr.packSendBySessionID(sendViaSessionID, SessionID, PoolIndex,  
 | 
    #               CommonDefine.atInner,  
 | 
    #               MMORPGPack.stGame, MMORPGPack.stData,   
 | 
    #               recvPack.GetBuffer())  
 | 
    mylog.info('ProjSpecialProcess SendGMToolCommandToGameServer Done')   
 | 
      
 | 
#»Ø¸´GM¹¤¾ßÃüÁîÖ´Ðнá¹û°ü  
 | 
def SendToGMToolCommandResult(OrderLen,OrderId,ResultLen,Result,UserDataLen,UserData):  
 | 
    # global g_GMCMDMgr  
 | 
    # if isinstance(Result, unicode):  
 | 
    #     #Ö±½Ó´ÓÊý¾Ý¿âδ½øÐÐת»¯µÄ»°ÊÇunicode  
 | 
    #     Result = Result.encode('gbk')  
 | 
          
 | 
    # mylog.info('ProjSpecialProcess SendToGMToolCommandResult OrderId = %s'%OrderId)   
 | 
    # recvPack = SendPackProtocol.tagGMCommandResult()  
 | 
    # recvPack.Type = CommonDefine.gstGMToolCommandResult   
 | 
    # recvPack.OrderLen = OrderLen  
 | 
    # recvPack.OrderId = OrderId  
 | 
    # recvPack.ResultLen     = ResultLen  
 | 
    # recvPack.Result        = Result  
 | 
    # recvPack.UserDataLen   = UserDataLen  
 | 
    # recvPack.UserData      = UserData  
 | 
      
 | 
      
 | 
    # sendViaSessionID =  g_GMCMDMgr.PopPair(recvPack.OrderId)  
 | 
    # ServerMgr = MongoDBServer.getServerMgr()               
 | 
      
 | 
    # SessionID = 0  
 | 
    # PoolIndex = -1  
 | 
    # mylog.info('ProjSpecialProcess SendToGMToolCommandResult sendViaSessionID = %s,SessionID = %d,PoolIndex = %d'%(sendViaSessionID, SessionID,PoolIndex))  
 | 
    # if sendViaSessionID == '':  
 | 
    #     mylog.warning('ProjSpecialProcess SendToGMToolCommandResult Fail, No Client in GMToolPort')  
 | 
    #     return  
 | 
      
 | 
    # ServerMgr.packSendBySessionID(sendViaSessionID, SessionID, PoolIndex,  
 | 
    #               CommonDefine.atInner,  
 | 
    #               MMORPGPack.stGMTool, MMORPGPack.stData,   
 | 
    #               recvPack.GetBuffer())  
 | 
    mylog.info('ProjSpecialProcess SendToGMToolCommandResult Done')    
 | 
   
 | 
#·¢ËÍÊý¾Ý¿âÇëÇó  
 | 
def SendDBRequest(Type,OrderLen,OrderId,DataLen,Data):  
 | 
    #Type˵Ã÷  
 | 
    #CommonDefine.gstGMToolCmdSysDBRequest         #GM¹¤¾ßSysCtrlDBÇëÇóÀàÐÍ    
 | 
    #CommonDefine.gstGMToolCmdLogDBRequest         #GM¹¤¾ßLogCtrlDBÇëÇóÀàÐÍ    
 | 
    #CommonDefine.gstGMToolCmdUserDBRequest        #GM¹¤¾ßUserCtrlDBÇëÇóÀàÐÍ  
 | 
      
 | 
  
 | 
    # #¹¹½¨ÇëÇó°ü  
 | 
    # pack = RecvPackProtocol.tagGMCommandDBRequest()  
 | 
    # pack.Type = Type  
 | 
    # pack.OrderLen = OrderLen  
 | 
    # pack.OrderId = OrderId  
 | 
    # pack.DataLen = DataLen  
 | 
    # pack.Data = Data  
 | 
    # #·¢ÇëÇó°ü  
 | 
    # sendPack = SingletonObject.getPackPool().alloc()  
 | 
    # sendPack.setSendViaSocketID(-1)  
 | 
    # sendPack.getPackHead().sessionID = 0  
 | 
    # sendPack.getPackHead().poolIndex = -1  
 | 
    # sendPack.getPackHead().type = CommonDefine.atInner  
 | 
    # sendPack.setBuffer(pack.GetBuffer())  
 | 
    # ctrlDBMgr = CtrlDBManager.getCtrlMgr()  
 | 
    # ctrlDBMgr.dbRequestPush(sendPack)  
 | 
    # mylog.info('ProjSpecialProcess SendDBRequest Done ,Type = %s, OrderId = %s'%(Type,OrderId))   
 | 
    return True  
 | 
  
 | 
#·¢ËÍÂß¼´¦ÀíÇëÇó  
 | 
def SendLogicProcessRequest(Type,OrderLen,OrderId,DataLen,Data):  
 | 
    #Type˵Ã÷  
 | 
    #CommonDefine.gstGMToolCmdLogicProcessRequest  #GM¹¤¾ßLogicÇëÇóÀàÐÍ  
 | 
    #¹¹½¨ÇëÇó°ü  
 | 
    # pack = RecvPackProtocol.tagGMCommandDBRequest()  
 | 
    # pack.Type = Type  
 | 
    # pack.OrderLen = OrderLen  
 | 
    # pack.OrderId = OrderId  
 | 
    # pack.DataLen = DataLen  
 | 
    # pack.Data = Data  
 | 
    # #·¢ÇëÇó°ü  
 | 
    # sendPack = SingletonObject.getPackPool().alloc()  
 | 
    # sendPack.setSendViaSocketID(-1)  
 | 
    # sendPack.getPackHead().sessionID = 0  
 | 
    # sendPack.getPackHead().poolIndex = -1  
 | 
    # sendPack.getPackHead().type = CommonDefine.atInner  
 | 
    # sendPack.setBuffer(pack.GetBuffer())  
 | 
      
 | 
    # logicProcess = GlobalVarDefine.g_logicProcessThread  
 | 
    # if logicProcess == None:  
 | 
    #     mylog.warning('ProjSpecialProcess SendLogicProcessRequest Fail!!! logicProcessThread == None??')  
 | 
    #     return False  
 | 
    # logicProcess.requestPush(sendPack)  
 | 
    # mylog.info('ProjSpecialProcess SendLogicProcessRequest Done ,Type = %s, OrderId = %s'%(Type,OrderId))   
 | 
    return True  
 | 
      
 | 
        
 | 
##################################################################  
 |