<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def install(cls, message_type):
 """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 # 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 """

    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