code: def flush(self, send=True):
          
          flush = SMB2FlushRequest()
          flush['file_id'] = self.file_id
  
          if not send:
              return flush, self._flush_response
  
          log.info("Session: %s, Tree Connect: %s - sending SMB2 Flush Request "
                   "for file %s" % (self.tree_connect.session.username,
                                    self.tree_connect.share_name,
                                    self.file_name))
          log.debug(str(flush))
          request = self.connection.send(flush,
                                         self.tree_connect.session.session_id,
                                         self.tree_connect.tree_connect_id)
          return self._flush_response(request)
docs: A command sent by the client to request that a server flush all cached
          file information for the opened file.
  
          Supports out of band send function, call this function with send=False
          to return a tuple of (SMB2FlushRequest, receive_func) instead of
          sending the the request and waiting for the response. The receive_func
          can be used to get the response from the server by passing in the
          Request that was used to sent it out of band.
  
          :param send: Whether to send the request in the same call or return the
              message to the caller and the unpack function
          :return: The SMB2FlushResponse received from the server