code: def install(cls, message_type):
      
      def wrap(fn):
        @functools.wraps(fn)
        def wrapped_fn(self, from_pid, message_str):
          message = message_type()
          message.MergeFromString(message_str)
          return fn(self, from_pid, message)
        return Process.install(message_type.DESCRIPTOR.full_name)(wrapped_fn)
      return wrap
docs: A decorator to indicate a remotely callable method on a process using protocol buffers.
  
      .. code-block:: python
  
          from compactor.process import ProtobufProcess
          from messages_pb2 import RequestMessage, ResponseMessage
  
          class PingProcess(ProtobufProcess):
            @ProtobufProcess.install(RequestMessage)
            def ping(self, from_pid, message):
              # do something with message, a RequestMessage
              response = ResponseMessage(...)
              # send a protocol buffer which will get serialized on the wire.
              self.send(from_pid, response)
  
      The installed method should take ``from_pid`` and ``message`` parameters.
      ``from_pid`` is the process calling the method.  ``message`` is a protocol
      buffer of the installed type.
  
      :param message_type: Incoming messages to this message_type will be dispatched to this method.
      :type message_type: A generated protocol buffer stub