code: def handle_pre_call(self, message, connection):
          
          req = None
          try:
              req = connection.request_message_factory.build(message)
              # message_factory will create Request only when it receives
              # CallRequestMessage. It will return None, if it receives
              # CallRequestContinueMessage.
              if req:
                  self.handle_call(req, connection)
  
          except TChannelError as e:
              log.warn('Received a bad request.', exc_info=True)
              if req:
                  e.tracing = req.tracing
              connection.send_error(e)
docs: Handle incoming request message including CallRequestMessage and
          CallRequestContinueMessage
  
          This method will build the User friendly request object based on the
          incoming messages.
  
          It passes all the messages into the message_factory to build the init
          request object. Only when it get a CallRequestMessage and a completed
          arg_1=argstream[0], the message_factory will return a request object.
          Then it will trigger the async handle_call method.
  
          :param message: CallRequestMessage or CallRequestContinueMessage
          :param connection: tornado connection