def __init__(self, entityId=None): super(ClientEntity, self).__init__() self.logger = LogManager.getLogger('ClientEntity.%s' % self.__class__.__name__) self.logger.info('ClientEntity.__init__') self.eid = (entityId is None) and IdCreator.genId() or entityId EntityManager.addEntity(self.eid, self, False) self.server = None
def __init__(self, stub, encoder, proto='BSON'): super(ServerProxy, self).__init__() self.stub = stub stub.rpcChannel.regListener(self) self.owner = None self.logger = LogManager.getLogger('Client.ServerProxy') self.encoder = encoder self.proto = proto
def __init__(self, connector, encrypter=None, decrypter=None, compressor=None): # 需要处理onRead和onDisconnected回调 self.connector = connector self.channelObj = connector.getChannelObj() connector.setChannelObj(self) self.encrypter = encrypter self.decrypter = decrypter self.compressor = compressor self.logger = LogManager.getLogger('MarsRpc.CryptCompressConnector')
def __init__(self, stub, encoder, proto='BSON'): super(CachedServerProxy, self).__init__() self.logger = LogManager.getLogger('Client.CachedServerProxy') self.stub = None self.owner = None self.encoder = encoder self.reliableMsgCannotSentCB = None self.proto = proto self.dispatchMap = {} self.setStub(stub)
def __init__(self, ip, port, connectorHandler=None, reuseAddr=False): super(TcpServer, self).__init__() self.logger = LogManager.getLogger('MarsRpc.TcpServer') self.ip = ip self.port = port self.connectorHandler = connectorHandler self.create_socket(socket.AF_INT, socket.SOCK_STREAM) if reuseAddr: self.set_reuse_addr() self.started = False self.tryBind() self.logger.info('TcpServer init: server liston on: %s, %d', self.ip, self.port) self.listen(50)
def __init__(self, fd, peername): super(TcpConnector, self).__init__(fd) self.status = TcpConnector.ST_INIT self.wBuffer = StringIO() if fd: self.status = TcpConnector.ST_ESTABLISHED self.logger = LogManager.getLogger('MarsRpc.TcpConnector') self.recvBuffSize = TcpConnector.DEF_RECV_BUFFER self.channelObj = None self.peername = peername fd and self.setOption()
def __init__(self, host, port, conf, proto='BSON'): super(GateClient, self).__init__(self) self.logger = LogManager.getLogger('Client.GateClient') self.client = ChannelClient(host, port, self) self.status = GateClient.ST_INIT self.inReconnect = False self.reconnectData = None self.gateStub = None self.encoder = Md5IndexEncoder() # traceback self.tbHandler = None self.proto = proto enforceEncryption = bool(conf.get('enforceEncryption', False)) loginKeyPath = conf.get('loginKeyPath', None) loginKeyContent = conf.get('loginKeyContent', None) useKeyczar = bool(conf.get('useKeyczar', None)) self.zippedEnabled = bool(conf.get('zippedEnabled', False)) self.enableRegMd5Index = bool(conf.get('enableRegMd5Index', False)) self.receivedSeq = 0 self.useMessageCache = False self.sessionPaddingMinLen = 16 self.sessionPaddingMaxLen = 64 self.connectStatus = Common_pb2.ConnectReply.RT_BUSY self.sessionSeed = ClientGate_pb2.SessionSeed() if enforceEncryption: if useKeyczar: from Utils.SessionEncrypter import LoginKeyEncrypter self.keyEncrypter = LoginKeyEncrypter(loginKeyPath) else: from Utils.SessionEncrypter import LoginKeyEncrypterNoKeyczar self.keyEncrypter = LoginKeyEncrypterNoKeyczar(loginKeyPath, loginKeyContent) else: self.keyEncrypter = None self.onEventCallbacks = { GateClient.CB_ON_CONNECT_FAILED: set(), GateClient.CB_ON_CONNECT_SUCCESSED: set(), GateClient.CB_ON_DISCONNECTED: set(), GateClient.CB_ON_CONNECT_REPLY: set(), GateClient.CB_ON_RELIABLE_MSG_UNSENT: set(), }
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. import os import traceback from MarsLog.LogManager import LogManager import PathHelper as PH _logger = LogManager.getLogger('Utils.EntityScanner') def _getModuleFiles(moduleDir): moduleNameSet = set() try: files = os.listdir(moduleDir) except: _logger.error('error in _getModuleFiles: directory is %s', moduleDir) return () for filename in files: fileList = filename.split('.') if len(fileList) == 2: moduleName, extension = fileList if extension in ('py', 'pyc'): moduleNameSet.add(moduleName) moduleNameSet.discard('__init__')
def __init__(self): self.logger = LogManager.getLogger('Utils.EntityFactory') self.entityClasses = {}
def __init__(self, channelCreator=None): super(ConnectorManager, self).__init__() self.logger = LogManager.getLogger('MarsRpc.ConnectorManager') self.channelCreator = channelCreator
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. import PathHelper as PH PH.addPathes('../') from MarsLog.LogManager import LogManager from RpcArgument import ConvertError, RpcArgument, Avatar, MailBox from EntityManager import EntityManager MARS_RPC_CLIENT = 0 # client => server MARS_RPC_SERVER = 1 # server => server MARS_RPC_CS_ALL = 2 # client/server => server MARS_RPC_CLIENT_STUB = 3 # server => client _logger = LogManager.getLogger('Utils.RpcDecorator') class RpcMethod(object): def __init__(self, func, rpcType, argTypes, pub): super(RpcMethod, self).__init__() self.func = func self.rpcType = rpcType self.argTypes = argTypes self.pub = pub def call(self, entity, placeHolder, paramters): if not isinstance(paramters, dict): _logger.warn('call: paramter decode failed in RPC %s(%s)', self.func.__name__, str(self.argTypes)) return args = [] first = True
def __init__(self, connector): super(LoggingChannelObj, self).__init__() self.loggero = LogManager.getLogger('MarsRpc.LoggingChannelObj') self.connector = connector
def __init__(self, connector): super(EchoChannelObj, self).__init__() self.logger = LogManager.getLogger('MarsRpc.EchoChannelObj') self.connector = connector
def __init__(self, ip, port, connectorHandler=None): super(TcpClient, self).__init__(None, (ip, port)) self.logger = LogManager.getLogger('MarsRpc.TcpClient') self.logger.info('init tcp client, connect to : %s', self.peername)