code: def build_raw_response_message(self, response, args, is_completed=False):
          
          response.flags = FlagsType.none if is_completed else FlagsType.fragment
  
          # TODO decide what need to pass from request
          if response.state == StreamState.init:
              message = CallResponseMessage(
                  flags=response.flags,
                  code=response.code,
                  tracing=response.tracing,
                  headers=response.headers,
                  checksum=response.checksum,
                  args=args
              )
              response.state = (StreamState.completed if is_completed
                                else StreamState.streaming)
          elif response.state == StreamState.streaming:
              message = CallResponseContinueMessage(
                  flags=response.flags,
                  checksum=response.checksum,
                  args=args
              )
              response.state = (StreamState.completed if is_completed
                                else StreamState.streaming)
  
          message.id = response.id
          return message
docs: build protocol level message based on response and args.
  
          response object contains meta information about outgoing response.
          args are the currently chunk data from argstreams
          is_completed tells the flags of the message
  
          :param response: Response
          :param args: array of arg streams
          :param is_completed: message flags
          :return: CallResponseMessage/CallResponseContinueMessage